Alpha first commit
This commit is contained in:
commit
0f53680f31
4
config.conf
Normal file
4
config.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[general]
|
||||||
|
domain = 10.1.9.118
|
||||||
|
proto = http
|
||||||
|
templatepath = /etc/apache2/sites-available/999-template.conf
|
71
create.py
Executable file
71
create.py
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
import cgi
|
||||||
|
import cgitb
|
||||||
|
cgitb.enable()
|
||||||
|
import re
|
||||||
|
import configparser
|
||||||
|
from functions.headfoot import printheader,printfooter
|
||||||
|
from functions.htmlsyntaxfc import htmlsyntax
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
# IMPORT DE LA CONFIGURATION
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('config.conf')
|
||||||
|
|
||||||
|
DOMAIN = config.get('general','domain')
|
||||||
|
TEMPLATEPATH = config.get('general','templatepath')
|
||||||
|
PROTO = config.get('general','proto')
|
||||||
|
|
||||||
|
VHOSTPATH = '/etc/apache2/sites-available/'
|
||||||
|
|
||||||
|
fs = cgi.FieldStorage()
|
||||||
|
VHOSTNAME= fs.getvalue('VHOSTNAME')
|
||||||
|
# EXTRACTION DES VARIABLES
|
||||||
|
TEMPLATEFILE = open(TEMPLATEPATH, "r")
|
||||||
|
TEMPLATE = TEMPLATEFILE.read()
|
||||||
|
|
||||||
|
ALLVARIABLES = re.findall(r'\$\$\w+', TEMPLATE)
|
||||||
|
VARIABLES = ""
|
||||||
|
|
||||||
|
for i in ALLVARIABLES:
|
||||||
|
if VARIABLES.find(i) == -1:
|
||||||
|
VARIABLES = VARIABLES +" "+ i
|
||||||
|
|
||||||
|
VARIABLES = re.sub('[$$]', '', VARIABLES)
|
||||||
|
|
||||||
|
#######TODO REMPLACER LA TEMPLATE
|
||||||
|
for i in VARIABLES.split():
|
||||||
|
j = '$$' + i
|
||||||
|
key = fs.getvalue(i)
|
||||||
|
TEMPLATE = TEMPLATE.replace(j, key)
|
||||||
|
|
||||||
|
#######TODO ECRIRE LE FICHIER
|
||||||
|
|
||||||
|
VHOSTFILE = open(VHOSTPATH + VHOSTNAME, 'w')
|
||||||
|
|
||||||
|
VHOSTFILE.write(TEMPLATE)
|
||||||
|
VHOSTFILE.close()
|
||||||
|
|
||||||
|
FNULL = open(os.devnull, 'w')
|
||||||
|
|
||||||
|
|
||||||
|
trash = subprocess.call(['/usr/bin/sudo', '/usr/sbin/a2ensite' , VHOSTNAME], stdout=FNULL, stderr=subprocess.STDOUT)
|
||||||
|
trash = subprocess.call(['/usr/bin/sudo','/bin/systemctl','reload','apache2'], stdout=FNULL, stderr=subprocess.STDOUT)
|
||||||
|
|
||||||
|
TEMPLATE = htmlsyntax(TEMPLATE)
|
||||||
|
|
||||||
|
#######TODO GENERATION DES LETSENCRYPT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
printheader()
|
||||||
|
# BODY
|
||||||
|
|
||||||
|
print('<pre><b>Contenu de', VHOSTNAME, '</b><p>', TEMPLATE, '</p></pre>')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print('<br><a href="', PROTO , '://', DOMAIN , '/index.py">Retour</a>', sep='')
|
||||||
|
|
||||||
|
|
||||||
|
printfooter()
|
41
file.py
Executable file
41
file.py
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import cgi
|
||||||
|
import cgitb
|
||||||
|
cgitb.enable()
|
||||||
|
import re
|
||||||
|
import configparser
|
||||||
|
from functions.headfoot import printheader,printfooter
|
||||||
|
from functions.htmlsyntaxfc import htmlsyntax
|
||||||
|
# IMPORT DE LA CONFIGURATION
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('config.conf')
|
||||||
|
|
||||||
|
DOMAIN = config.get('general','domain')
|
||||||
|
PROTO = config.get('general','proto')
|
||||||
|
|
||||||
|
# TRAITEMENT DES DATA
|
||||||
|
fs = cgi.FieldStorage()
|
||||||
|
VHOSTNAME = cgi.escape(fs.getvalue('file'))
|
||||||
|
VHOSTPATH = "/etc/apache2/sites-available/" + VHOSTNAME
|
||||||
|
VHOSTFILE = open(VHOSTPATH, "r")
|
||||||
|
VHOST = VHOSTFILE.read()
|
||||||
|
|
||||||
|
VHOST = htmlsyntax(VHOST)
|
||||||
|
#VHOST = re.sub('<', '<', VHOST)
|
||||||
|
#VHOST = re.sub('>', '>', VHOST)
|
||||||
|
|
||||||
|
# AFFICHAGE DES ENTETES
|
||||||
|
printheader()
|
||||||
|
|
||||||
|
# BODY
|
||||||
|
print('<b>', VHOSTNAME , '</b>')
|
||||||
|
print("<pre>")
|
||||||
|
print('<p>', VHOST, '</p>' )
|
||||||
|
print('</pre>')
|
||||||
|
print('<a href="', PROTO , '://', DOMAIN , '/index.py">Retour</a>', sep='')
|
||||||
|
|
||||||
|
# AFFICHAGE DU FOOTER
|
||||||
|
printfooter()
|
||||||
|
|
16
functions/headfoot.py
Executable file
16
functions/headfoot.py
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
|
||||||
|
# DEBUG
|
||||||
|
import cgitb
|
||||||
|
cgitb.enable()
|
||||||
|
|
||||||
|
def printheader():
|
||||||
|
print("Content-Type: text/html\n")
|
||||||
|
|
||||||
|
print ("""
|
||||||
|
<html>
|
||||||
|
<title> Ma Jolie petite Page</title>
|
||||||
|
""")
|
||||||
|
|
||||||
|
def printfooter():
|
||||||
|
print("</html>")
|
8
functions/htmlsyntaxfc.py
Normal file
8
functions/htmlsyntaxfc.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
def htmlsyntax(DATA):
|
||||||
|
DATA = re.sub('<', '<', DATA)
|
||||||
|
DATA = re.sub('>', '>', DATA)
|
||||||
|
return(DATA)
|
30
index.py
Executable file
30
index.py
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
|
||||||
|
# DEBUG
|
||||||
|
import cgitb
|
||||||
|
cgitb.enable()
|
||||||
|
|
||||||
|
# IMPORT DES MODULES
|
||||||
|
import configparser
|
||||||
|
import os
|
||||||
|
from functions.headfoot import printheader,printfooter
|
||||||
|
# IMPORT DE LA CONFIGURATION
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('config.conf')
|
||||||
|
|
||||||
|
DOMAIN = config.get('general','domain')
|
||||||
|
PROTO = config.get('general','proto')
|
||||||
|
|
||||||
|
# AFFICHAGE DES ENTETES
|
||||||
|
printheader()
|
||||||
|
|
||||||
|
# BODY
|
||||||
|
print('<a href="http://', DOMAIN , '/new.py">Nouveau VHOST</a>', "<br>" , sep='' )
|
||||||
|
|
||||||
|
for i in os.listdir("/etc/apache2/sites-available"):
|
||||||
|
if os.path.isfile("/etc/apache2/sites-enabled/" + i):
|
||||||
|
print('<a href="', PROTO , '://', DOMAIN, '/file.py?file=',i, '">', i ,'</a> is enable!<br>', sep='')
|
||||||
|
else:
|
||||||
|
print('<a href="', PROTO , '://', DOMAIN, '/file.py?file=',i, '">', i ,'</a> is disable!<br>', sep='')
|
||||||
|
# AFFICHAGE DES FOOTERS
|
||||||
|
printfooter()
|
47
new.py
Executable file
47
new.py
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/python3.5
|
||||||
|
import cgi
|
||||||
|
import cgitb
|
||||||
|
cgitb.enable()
|
||||||
|
import re
|
||||||
|
import configparser
|
||||||
|
from functions.headfoot import printheader,printfooter
|
||||||
|
|
||||||
|
# IMPORT DE LA CONFIGURATION
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('config.conf')
|
||||||
|
|
||||||
|
DOMAIN = config.get('general','domain')
|
||||||
|
TEMPLATEPATH = config.get('general','templatepath')
|
||||||
|
PROTO = config.get('general','proto')
|
||||||
|
|
||||||
|
# EXTRACTION DES VARIABLES
|
||||||
|
TEMPLATEFILE = open(TEMPLATEPATH, "r")
|
||||||
|
TEMPLATE = TEMPLATEFILE.read()
|
||||||
|
|
||||||
|
ALLVARIABLES = re.findall(r'\$\$\w+', TEMPLATE)
|
||||||
|
VARIABLES = ""
|
||||||
|
|
||||||
|
for i in ALLVARIABLES:
|
||||||
|
if VARIABLES.find(i) == -1:
|
||||||
|
VARIABLES = VARIABLES +" "+ i
|
||||||
|
|
||||||
|
VARIABLES = re.sub('[$$]', '', VARIABLES)
|
||||||
|
|
||||||
|
printheader()
|
||||||
|
|
||||||
|
# BODY
|
||||||
|
print('<form action="/create.py">')
|
||||||
|
print('Nom du VirtualHost : <input type="text" name="VHOSTNAME"><br>')
|
||||||
|
|
||||||
|
for i in VARIABLES.split():
|
||||||
|
print(i, ':')
|
||||||
|
print('<input type="text" name="', i , '"><br>', sep="")
|
||||||
|
|
||||||
|
print('<input type="submit" value="GO">')
|
||||||
|
|
||||||
|
print('</form>')
|
||||||
|
print('<br><a href="', PROTO , '://', DOMAIN , '/index.py">Retour</a>', sep='')
|
||||||
|
|
||||||
|
|
||||||
|
printfooter()
|
||||||
|
|
Reference in New Issue
Block a user