diff options
| author | Scott Bahling <sbahling@mudgum.net> | 2013-03-23 17:29:45 +0100 |
|---|---|---|
| committer | Scott Bahling <sbahling@mudgum.net> | 2013-03-23 17:29:45 +0100 |
| commit | b517bd162198c9c2ef0f645e1722af84475be2ce (patch) | |
| tree | bd3ac6809d0477880074ca5de088ef79e37cc05d /panfry/main.py | |
| parent | 0426fce3b39ebedf6b92bfe6b18aa08987b11ea2 (diff) | |
| download | panfry-b517bd162198c9c2ef0f645e1722af84475be2ce.tar.gz panfry-b517bd162198c9c2ef0f645e1722af84475be2ce.tar.xz panfry-b517bd162198c9c2ef0f645e1722af84475be2ce.zip | |
Add panfry serve command and pandoc-options
Diffstat (limited to 'panfry/main.py')
| -rwxr-xr-x | panfry/main.py | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/panfry/main.py b/panfry/main.py index 100ca74..0713a8f 100755 --- a/panfry/main.py +++ b/panfry/main.py @@ -3,6 +3,9 @@ from __future__ import print_function import os import shutil +import shlex +import SimpleHTTPServer +import SocketServer import panfry.cli from panfry.templater import Templater from panfry.document import Document @@ -10,26 +13,31 @@ from panfry.document import Document def get_env(): env = panfry.cli.init_argparser().parse_args() - if not os.path.isdir(env.doc_path): - print("%s directory not found. Aborting..." % env.doc_path) - exit(1) - env.pub_path = os.path.abspath(env.pub_path) + + if env.cmd in ['gen']: + if not os.path.isdir(env.doc_path): + print("%s directory not found. Aborting..." % env.doc_path) + exit(1) + - if not env.templates_path: - env.templates_path = os.path.join(env.doc_path, 'templates') + if not env.templates_path: + env.templates_path = os.path.join(env.doc_path, 'templates') - if not os.path.isdir(env.templates_path): - print("No templates path found. Aborting...") - exit(1) + if not os.path.isdir(env.templates_path): + print("No templates path found. Aborting...") + exit(1) + + if env.pandoc_options: + env.pandoc_options = list(shlex.split(env.pandoc_options)) return env -def main(): - env = get_env() +def gen(env): document = Document(env.doc_path) document.set_templater(Templater(env.templates_path)) + document.set_pandoc_options(env.pandoc_options) if env.simple_toc: document.set_simple_toc @@ -45,6 +53,11 @@ def main(): print("done.") exit(0) + print("\nUsing pandoc options:") + for opt in env.pandoc_options: + print(" --%s" % opt) + + print() ###### Create PDF pdffile = document.publish_pdf(env.pub_path) @@ -59,5 +72,20 @@ def main(): exit(0) + +def serve(env): + os.chdir(env.pub_path) + Handler = SimpleHTTPServer.SimpleHTTPRequestHandler + + httpd = SocketServer.TCPServer(("", int(env.port)), Handler) + print("serving at port: %s" % int(env.port)) + httpd.serve_forever() + + +def main(): + CMD = dict(gen=gen, serve=serve) + env = get_env() + CMD[env.cmd](env) + if __name__ == "__main__": main() |
