mirror of
https://github.com/greenseeker/t2server.git
synced 2026-01-19 19:24:46 +00:00
113 lines
3.3 KiB
Python
Executable file
113 lines
3.3 KiB
Python
Executable file
#!/usr/bin/env -S python3 -B
|
|
from os import geteuid, chmod, walk
|
|
from os.path import isdir, islink, join
|
|
from shutil import chown
|
|
from sys import exit as bail
|
|
from t2support import *
|
|
|
|
if geteuid() != 0:
|
|
bail("This script must be run with sudo or as root.\n")
|
|
|
|
def setperm(file):
|
|
if islink(file):
|
|
pass
|
|
elif isdir(file):
|
|
log.write(f"Setting mode 775 on directory {file}")
|
|
try:
|
|
chmod(file,0o775)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
elif file.endswith("t2support.py"):
|
|
log.write(f"Setting mode 664 on file {file}")
|
|
try:
|
|
chmod(file,0o664)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
elif file.startswith(bin_dir):
|
|
log.write(f"Setting mode 775 on script {file}")
|
|
try:
|
|
chmod(file,0o775)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
elif file.endswith(".exe"):
|
|
log.write(f"Setting mode 775 on exe {file}")
|
|
try:
|
|
chmod(file,0o775)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
elif file == f"{etc_dir}/release":
|
|
log.write(f"Setting mode 444 on {file}")
|
|
try:
|
|
chmod(file,0o444)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
else:
|
|
log.write(f"Setting mode 664 on file {file}")
|
|
try:
|
|
chmod(file,0o664)
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set permissions on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
|
|
if islink(file):
|
|
pass
|
|
else:
|
|
try:
|
|
log.write(f"Setting owner/group on {file}")
|
|
chown(file, "t2server", "t2server")
|
|
log.write(f"\n")
|
|
except:
|
|
pwarn(f"Failed to set owner/group on {file}")
|
|
log.write(f"... FAILED!\n")
|
|
pass
|
|
|
|
|
|
with open(f'{log_dir}/t2fixer.log', 'w') as log:
|
|
setperm(install_dir)
|
|
setperm(etc_dir)
|
|
|
|
for r, d, f in walk(f"{install_dir}/GameData"):
|
|
for file in d:
|
|
setperm(join(r, file))
|
|
for file in f:
|
|
setperm(join(r, file))
|
|
|
|
for r, d, f in walk(etc_dir):
|
|
for file in d:
|
|
setperm(join(r, file))
|
|
for file in f:
|
|
setperm(join(r, file))
|
|
|
|
for r, d, f in walk(log_dir):
|
|
for file in d:
|
|
setperm(join(r, file))
|
|
for file in f:
|
|
setperm(join(r, file))
|
|
|
|
setperm(f"{unit_dir}/t2server.service")
|
|
setperm(f"{unit_dir}/t2bouncer.service")
|
|
setperm(f"{unit_dir}/t2bouncer.timer")
|
|
setperm(f"{bin_dir}/t2server")
|
|
setperm(f"{bin_dir}/t2bouncer")
|
|
setperm(f"{bin_dir}/t2remove")
|
|
setperm(f"{bin_dir}/t2fixer")
|
|
setperm(f"{bin_dir}/t2help")
|
|
setperm(f"{bin_dir}/t2support.py")
|
|
setperm(f"{etc_dir}/release") |