mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 07:08:55 +00:00
Add copyright header
This commit is contained in:
92
fabfile/copyright.py
Normal file
92
fabfile/copyright.py
Normal file
@@ -0,0 +1,92 @@
|
||||
# Copyright (c) 2012-2016 Seafile Ltd.
|
||||
|
||||
import os
|
||||
from fabric.api import task
|
||||
|
||||
@task
|
||||
def update(path):
|
||||
"""Add copyright stuff to the begining of files.
|
||||
"""
|
||||
for filename in path_to_pyfile_list(path):
|
||||
do_update(filename)
|
||||
|
||||
@task
|
||||
def check(path):
|
||||
"""Check copyright stuff for files.
|
||||
"""
|
||||
for filename in path_to_pyfile_list(path):
|
||||
do_check(filename)
|
||||
|
||||
def do_update(filename):
|
||||
if 'migrations' in filename:
|
||||
print 'skip migration file: %s' % filename
|
||||
return
|
||||
|
||||
with open(filename) as f:
|
||||
# try read first line of file
|
||||
try:
|
||||
head = [next(f) for x in xrange(1)]
|
||||
except StopIteration:
|
||||
print '%s is empty, skip' % filename
|
||||
return
|
||||
|
||||
copy_str = '# Copyright (c) 2012-2016 Seafile Ltd.'
|
||||
|
||||
need_update = True
|
||||
for line in head:
|
||||
line = line.lower()
|
||||
if 'seafile ltd.' in line:
|
||||
need_update = False
|
||||
|
||||
if not need_update:
|
||||
print '%s is ok.' % filename
|
||||
return
|
||||
|
||||
line_prepender(filename, copy_str)
|
||||
print '%s Done.' % filename
|
||||
|
||||
def path_to_pyfile_list(path):
|
||||
is_dir = False
|
||||
if os.path.isdir(path):
|
||||
is_dir = True
|
||||
|
||||
if not is_dir:
|
||||
py_files = [path]
|
||||
else:
|
||||
py_files = []
|
||||
for root, directories, filenames in os.walk(path):
|
||||
for directory in directories:
|
||||
f = os.path.join(root, directory)
|
||||
if f.endswith('.py'):
|
||||
py_files.append(f)
|
||||
for filename in filenames:
|
||||
if filename.endswith('.py'):
|
||||
py_files.append(os.path.join(root, filename))
|
||||
return py_files
|
||||
|
||||
|
||||
def line_prepender(filename, line):
|
||||
with open(filename, 'r+') as f:
|
||||
content = f.read()
|
||||
f.seek(0, 0)
|
||||
f.write(line.rstrip('\r\n') + '\n' + content)
|
||||
|
||||
def do_check(filename):
|
||||
if 'migrations' in filename:
|
||||
return
|
||||
|
||||
with open(filename) as f:
|
||||
# try read first line of file
|
||||
try:
|
||||
head = [next(f) for x in xrange(1)]
|
||||
except StopIteration:
|
||||
return
|
||||
|
||||
need_update = True
|
||||
for line in head:
|
||||
line = line.lower()
|
||||
if 'seafile ltd.' in line:
|
||||
need_update = False
|
||||
|
||||
if need_update:
|
||||
print 'No copyright info in %s.' % filename
|
Reference in New Issue
Block a user