55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import re
 | 
						|
import os
 | 
						|
import io
 | 
						|
 | 
						|
copyright = """// Copyright 2017 Zack Guo <zack.y.guo@gmail.com>. All rights reserved.
 | 
						|
// Use of this source code is governed by a MIT license that can
 | 
						|
// be found in the LICENSE file.
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
exclude_dirs = [".git", "_docs"]
 | 
						|
exclude_files = []
 | 
						|
include_dirs = [".", "debug", "extra", "test", "_example"]
 | 
						|
 | 
						|
 | 
						|
def is_target(fpath):
 | 
						|
    if os.path.splitext(fpath)[-1] == ".go":
 | 
						|
        return True
 | 
						|
    return False
 | 
						|
 | 
						|
 | 
						|
def update_copyright(fpath):
 | 
						|
    print("processing " + fpath)
 | 
						|
    f = io.open(fpath, 'r', encoding='utf-8')
 | 
						|
    fstr = f.read()
 | 
						|
    f.close()
 | 
						|
 | 
						|
    # remove old
 | 
						|
    m = re.search('^// Copyright .+?\r?\n\r?\n', fstr, re.MULTILINE|re.DOTALL)
 | 
						|
    if m:
 | 
						|
        fstr = fstr[m.end():]
 | 
						|
 | 
						|
    # add new
 | 
						|
    fstr = copyright + fstr
 | 
						|
    f = io.open(fpath, 'w',encoding='utf-8')
 | 
						|
    f.write(fstr)
 | 
						|
    f.close()
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
    for d in include_dirs:
 | 
						|
        files = [
 | 
						|
            os.path.join(d, f) for f in os.listdir(d)
 | 
						|
            if os.path.isfile(os.path.join(d, f))
 | 
						|
        ]
 | 
						|
        for f in files:
 | 
						|
            if is_target(f):
 | 
						|
                update_copyright(f)
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 |