change filemode mechanism in gitea.write_when_new
This commit is contained in:
9
gitea.py
9
gitea.py
@ -47,8 +47,7 @@ fi
|
||||
"""
|
||||
|
||||
def write_when_new(doit, filename, content, executable=False):
|
||||
if executable:
|
||||
executable = 0o100 # file mode u+x
|
||||
newmode = 0o755 is executable else 0o644
|
||||
if content is None:
|
||||
lines = []
|
||||
else:
|
||||
@ -61,14 +60,14 @@ def write_when_new(doit, filename, content, executable=False):
|
||||
filemode = os.stat(filename).st_mode
|
||||
except FileNotFoundError:
|
||||
old = None
|
||||
filemode = 0o644
|
||||
if old == content and (filemode & executable == executable):
|
||||
filemode = 0
|
||||
if old == content and (filemode | newmode == filemode):
|
||||
return False
|
||||
if doit:
|
||||
if lines:
|
||||
with open(filename, 'w') as fil:
|
||||
fil.write(content)
|
||||
os.chmod(filename, filemode + executable)
|
||||
os.chmod(filename, newmode)
|
||||
else:
|
||||
os.remove(filename)
|
||||
return True
|
||||
|
Reference in New Issue
Block a user