nginxparser
install
$ pip install -e git+https://github.com/fatiherikli/nginxparser#egg=nginxparser
Obtaining nginxparser from git+https://github.com/fatiherikli/nginxparser#egg=nginxparser
Cloning https://github.com/fatiherikli/nginxparser to /home/vagrant/.pyenv/versions/wordpress/src/nginxparser
Collecting pyparsing>=1.5.5 (from nginxparser)
Downloading pyparsing-2.0.3-py2.py3-none-any.whl
Installing collected packages: pyparsing, nginxparser
Running setup.py develop for nginxparser
Creating /home/vagrant/.pyenv/versions/wordpress/lib/python2.7/site-packages/Nginxparser.egg-link (link to .)
Adding Nginxparser 0.2 to easy-install.pth file
Installed /home/vagrant/.pyenv/versions/wordpress/src/nginxparser
Successfully installed nginxparser pyparsing-2.0.3
>>> from nginxparser import load
>>> conf = load(open('nginx.conf'))
>>> type(conf)
<type 'list'>
-I tried pull request -It was pointed out earlier ... (> <)
nginx.py
--Enable / disable nginx.conf with nginx in Deiban package -I tried using a crappy argparse wrapper called pycommand
#!/usr/bin/env python
from nginxparser import load
import os
from pycommand.command import Command, SubCommand
def server_name(file):
for i in load(open(file)):
for j in (i[0] == ['server']) and i[1] or []:
if j[0] == 'server_name':
return j[1]
return None
ARGS = [
(('file', ), dict(nargs='?', default='nginx.conf')),
]
class NginxCommand(Command):
class Enable(SubCommand):
args = ARGS
def run(self, param, **options):
cname = server_name(param.file)
print "sudo ln -s {0} /etc/nginx/site-enable/{1}".format(
os.path.abspath(param.file), cname)
print "mkdir run"
print "mkdir logs"
class Disable(SubCommand):
args = ARGS
def run(self, param, **options):
cname = server_name(param.file)
print "sudo unlink /etc/nginx/site-enable/{0}".format(cname)
if __name__ == '__main__':
NginxCommand().run()
Recommended Posts