90 líneas
2,5 KiB
Python
90 líneas
2,5 KiB
Python
import getpass
|
|
import fileinput,re
|
|
import os
|
|
import sys
|
|
import pdb
|
|
|
|
def create_config():
|
|
|
|
if not os.path.exists('config'):
|
|
os.makedirs('config')
|
|
if not os.path.exists(config_filepath):
|
|
print(config_filepath + " created!")
|
|
with open('config/config.txt', 'w'): pass
|
|
|
|
def write_config():
|
|
|
|
with open(config_filepath, 'a') as the_file:
|
|
|
|
the_file.write('mastodon_hostname: \n')
|
|
print(f"adding parameter 'mastodon_hostname' to {config_filepath}")
|
|
the_file.write('mastodon_full_path: \n')
|
|
print(f"adding parameter 'mastodon_full_path' to {config_filepath}")
|
|
the_file.write('purge_days: \n')
|
|
print(f"adding parameter 'purge_days' to {config_filepath}")
|
|
|
|
def read_config_line():
|
|
|
|
with open(config_filepath) as fp:
|
|
|
|
line = fp.readline()
|
|
modify_file(config_filepath, "mastodon_hostname: ", value=hostname)
|
|
modify_file(config_filepath, "mastodon_full_path: ", value=full_path)
|
|
modify_file(config_filepath, "purge_days: ", value=purge_days)
|
|
|
|
def modify_file(file_name,pattern,value=""):
|
|
|
|
fh=fileinput.input(file_name,inplace=True)
|
|
|
|
for line in fh:
|
|
|
|
replacement=pattern + value
|
|
line=re.sub(pattern,replacement,line)
|
|
sys.stdout.write(line)
|
|
|
|
fh.close()
|
|
|
|
def get_parameter( parameter, config_filepath ):
|
|
|
|
# Check if secrets file exists
|
|
if not os.path.isfile(config_filepath):
|
|
|
|
print(f'File {config_filepath} not found, creating it.')
|
|
create_config()
|
|
|
|
# Find parameter in file
|
|
with open( config_filepath ) as f:
|
|
|
|
for line in f:
|
|
|
|
if line.startswith( parameter ):
|
|
|
|
return line.replace(parameter + ":", "").strip()
|
|
|
|
# Cannot find parameter, exit
|
|
print(f'{config_filepath} Missing parameter {parameter}')
|
|
|
|
write_config()
|
|
|
|
global hostname, full_path, purge_days
|
|
|
|
hostname = input("Enter Mastodon hostname: ")
|
|
full_path = input("Enter Mastodon's full path dir: ")
|
|
purge_days = int(input("Enter days to trigger server purge (default 7): ") or "7")
|
|
purge_days = str(purge_days)
|
|
|
|
read_config_line()
|
|
|
|
print("cleanserver setup done!")
|
|
sys.exit(0)
|
|
|
|
###############################################################################
|
|
# main
|
|
|
|
if __name__ == '__main__':
|
|
|
|
# Load configuration from config file
|
|
config_filepath = "config/config.txt"
|
|
mastodon_hostname = get_parameter("mastodon_hostname", config_filepath)
|
|
mastodon_full_path = get_parameter("mastodon_full_path", config_filepath)
|
|
purge_days = get_parameter("purge_days", config_filepath)
|