Skip to content

Instantly share code, notes, and snippets.

@paramah
Created April 8, 2010 13:26
Show Gist options
  • Save paramah/360069 to your computer and use it in GitHub Desktop.
Save paramah/360069 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
# SAS by Aleksander Cynarski [a.cynarski@pretasoft.pl]
import os, sys, getopt, socket
from pwd import getpwnam
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "hd:u:t:s:", ["help", "domain=","username=","type=","ssl"])
except getopt.GetoptError, err:
print str(err)
usage()
sys.exit(2)
ssl = "80"
if len(opts) < 1:
usage()
sys.exit(2)
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
if o in ("-d", "--domain"):
domain = a
if o in ("-u", "--username"):
username = a
if o in ("-t", "--type"):
vtype = a
if o in ("-s", "--ssl"):
ssl = "443"
directory = domain.replace('.','_')
usid = getpwnam(username)[2]
grid = getpwnam(username)[3]
ipaddr = socket.gethostbyname(socket.gethostname())
if not os.path.isdir("/home/%s/sites" % username):
os.mkdir("/home/%s/sites" % username)
print "Make SITES root directory..."
if not os.path.isdir("/home/%(u)s/sites/%(d)s" % {"u":username, "d":domain} ):
os.mkdir("/home/%(u)s/sites/%(d)s" % {"u":username, "d":domain} )
print "Make DOMAIN root directory..."
if not os.path.isdir("/home/%(u)s/sites/%(d)s/logs" % {"u":username, "d":domain} ):
os.mkdir("/home/%(u)s/sites/%(d)s/logs" % {"u":username, "d":domain} )
os.mkdir("/home/%(u)s/sites/%(d)s/logs/apache" % {"u":username, "d":domain} )
os.mkdir("/home/%(u)s/sites/%(d)s/logs/php" % {"u":username, "d":domain} )
print "Make DOMAIN logs directory..."
if not os.path.isdir("/home/%(u)s/sites/%(d)s/tmp" % {"u":username, "d":domain} ):
os.mkdir("/home/%(u)s/sites/%(d)s/tmp" % {"u":username, "d":domain} )
os.chmod("/home/%(u)s/sites/%(d)s/tmp" % {"u":username, "d":domain}, 0777)
print "Make DOMAIN temporary files directory..."
if not os.path.isdir("/home/%(u)s/sites/%(d)s/www" % {"u":username, "d":domain} ):
os.mkdir("/home/%(u)s/sites/%(d)s/www" % {"u":username, "d":domain} )
os.chown("/home/%(u)s/sites/%(d)s/www" % {"u":username, "d":domain}, usid, grid)
print "Make DOMAIN ROOT directory..."
if ssl == '443':
vhost_template = open('/home/pretasoft/admin/VIRTUAL-TEMPLATE-SSL').read()
else:
vhost_template = open('/home/pretasoft/admin/VIRTUAL-TEMPLATE').read()
vhost = vhost_template.replace('@vhost_ip@', ipaddr).replace("@port@",ssl).replace('@user@', username).replace('@domain@', domain)
open('/etc/apache2/sites-available/%s.conf' % directory, 'w').write(vhost)
os.system('a2ensite %s.conf' % directory)
os.system('/etc/init.d/apache2 restart')
def usage():
print 'usage: [-u username] [-d domain.com] [-t virtual_host_type (default: PHP)] [-s (SSL Site)]'
if __name__=="__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment