This commit is contained in:
gauthiier 2018-11-28 09:46:01 +01:00
parent 7ea0b948af
commit 6cc2f3e223

View File

@ -1,12 +1,14 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys, os, platform, subprocess, logging, argparse import sys, os, platform, subprocess, re, argparse
platform_support = ['Linux'] platform_support = ['Linux']
html_dir_path = "" html_dir_path = ""
logs_dir_path = "" logs_dir_path = ""
re_domain = r'^(?=.{1,253}$)(?!.*\.\..*)(?!\..*)([a-zA-Z0-9-]{,63}\.){,127}[a-zA-Z0-9-]{1,63}$'
def y_n_question(question_str): def y_n_question(question_str):
yes = {'yes','y', 'ye', ''} yes = {'yes','y', 'ye', ''}
@ -59,6 +61,39 @@ def sanity_chek_platform():
else: else:
sys.exit("Can not configure platform. Aborting...") sys.exit("Can not configure platform. Aborting...")
def vhost_add(domain):
global html_dir_path, logs_dir_path, re_domain
print(" adding vhost domain — " + domain)
if re.match(re_domain, domain) is None:
print("Invalid domain name: " + domain + " -> pass")
www = os.path.join(html_dir_path + domain)
os.makedirs(www, exist_ok=True)
logs = os.path.join(logs_dir_path + domain)
os.makedirs(logs, exist_ok=True)
# debug: this file might not be here
with open('vhost_tmpl') as vhost_tmpl_fp:
vhost_tmpl = vhost_tmpl_fp.read()
usr = os.getlogin()
vhost = vhost_tmpl.replace("%domain?", domain).replace("%user?", usr)
# debug: write file directly to '/etc/apache2/sites-available/' ?
vhost_file = os.path.join(www, domain + '.conf')
with open(vhost_file, 'w+') as vhost_file_fp:
vhost_file_fp.write(vhost)
def vhost_remove(domain):
print(" removing domain — " + domain)
if __name__ == "__main__": if __name__ == "__main__":
p = argparse.ArgumentParser(description='vhost helper') p = argparse.ArgumentParser(description='vhost helper')
@ -69,7 +104,20 @@ if __name__ == "__main__":
args = p.parse_args() args = p.parse_args()
print('1. sanity checks')
sanity_check_system() sanity_check_system()
sanity_chek_platform() sanity_chek_platform()
print('2. vhosting')
for d in args.domain:
if args.add:
vhost_add(d)
elif args.remove:
vhost_remove(d)
print('done.')