summaryrefslogtreecommitdiff
path: root/panfry/main.py
diff options
context:
space:
mode:
authorScott Bahling <sbahling@mudgum.net>2013-03-23 17:29:45 +0100
committerScott Bahling <sbahling@mudgum.net>2013-03-23 17:29:45 +0100
commitb517bd162198c9c2ef0f645e1722af84475be2ce (patch)
treebd3ac6809d0477880074ca5de088ef79e37cc05d /panfry/main.py
parent0426fce3b39ebedf6b92bfe6b18aa08987b11ea2 (diff)
downloadpanfry-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-xpanfry/main.py50
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()