add new option of prosopopee command

This commit is contained in:
Adrien Beudin 2017-05-05 16:52:12 +02:00
parent 0749e9fec2
commit c4d782613f
6 changed files with 87 additions and 1 deletions

View File

@ -1,6 +1,9 @@
Build the website Build the website
================= =================
Generate
--------
**Note: You need to be in an activated virtualenv.** **Note: You need to be in an activated virtualenv.**
In a folder containing the **root** settings.yaml file, simply do:: In a folder containing the **root** settings.yaml file, simply do::
@ -9,3 +12,20 @@ In a folder containing the **root** settings.yaml file, simply do::
A `build` folder will be created in the current directory, containing an A `build` folder will be created in the current directory, containing an
index.html, static files (css & js) and pictures. index.html, static files (css & js) and pictures.
Preview
-------
In a root folder launch this command::
prosopopee preview
After you can check your website on http://localhost:9000
Deployment
----------
Prosopopee can upload your website with rsync, for do it run::
prosopopee deploy

View File

@ -6,6 +6,7 @@ Changelog
* Add audio HTML5 player * Add audio HTML5 player
* Update Material theme * Update Material theme
* Add youtube section * Add youtube section
* Add deploy and preview option
0.4 (2016-12-11) 0.4 (2016-12-11)

View File

@ -188,6 +188,19 @@ Optionnal: You need use description and lang key in settings gallery.
for more informations about Open Graph http://ogp.me/ for more informations about Open Graph http://ogp.me/
Deployment
~~~~~~~~~~
If you wanna configure the deployement of your website by rsync::
settings:
deploy:
username: beudbeud (optional need for ssh)
hostname: beudibox.fr (optional need for ssh)
dest: /var/www/surleschemins/build/
others: --delete-afte (optional)
Gallery settings.yaml Gallery settings.yaml
--------------------- ---------------------

View File

@ -20,6 +20,10 @@ or::
apt-get install libav-tools apt-get install libav-tools
The deployment need rsync::
apt-get install rsync
Installation in virtualenv Installation in virtualenv
-------------------------- --------------------------

View File

@ -1,8 +1,26 @@
#!/usr/bin/env python #!/usr/bin/env python
"""Prosopopee. Static site generator for your story.
Usage:
prosopopee.py
prosopopee.py preview
prosopopee.py deploy
prosopopee.py (-h | --help)
prosopopee.py --version
Options:
-h --help Show this screen.
--version Show version.
"""
import os import os
import yaml import yaml
import shutil import shutil
from docopt import docopt
import SocketServer
import SimpleHTTPServer
import subprocess
from path import Path from path import Path
@ -500,6 +518,7 @@ def build_index(settings, galleries_cover, templates, gallery_path='', sub_index
def main(): def main():
arguments = docopt(__doc__, version='0.5')
settings = get_settings() settings = get_settings()
front_page_galleries_cover = [] front_page_galleries_cover = []
@ -510,8 +529,36 @@ def main():
"directory (NOT the settings.yaml in your current directory, but one INSIDE A " "directory (NOT the settings.yaml in your current directory, but one INSIDE A "
"DIRECTORY in your current working directory), you don't have any gallery?") "DIRECTORY in your current working directory), you don't have any gallery?")
Path("build").makedirs_p() if arguments['preview']:
error(Path("build").exists(), "Please build the website before launch preview")
os.chdir('build')
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 9000), Handler)
print "Start server on http://localhost:9000"
# gracefully handle interrupt here
httpd.serve_forever()
if arguments['deploy']:
error(os.system("which rsync > /dev/null") == 0, "I can't locate the rsync, "
"please install the 'rsync' package.\n")
error(Path("build").exists(), "Please build the website before launch deployment")
r_username = settings["settings"]["deploy"]["username"]
r_hostname = settings["settings"]["deploy"]["hostname"]
r_dest = settings["settings"]["deploy"]["dest"]
if settings["settings"]["deploy"]["others"]:
r_others = settings["settings"]["deploy"]["others"]
else:
r_others = ''
r_cmd = "rsync -avz --progress %s build/* %s@%s:%s" % (r_others, r_username, r_hostname, r_dest)
print r_cmd
error(os.system(r_cmd) == 0, "deployment failed")
#proc = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, preexec_fn=os.setsid)
return
Path("build").makedirs_p()
theme = settings["settings"].get("theme", "exposure") theme = settings["settings"].get("theme", "exposure")
templates = get_gallery_templates(theme) templates = get_gallery_templates(theme)
templates.add_extension('jinja2.ext.with_') templates.add_extension('jinja2.ext.with_')

View File

@ -1,3 +1,4 @@
jinja2 jinja2
pyyaml pyyaml
path.py path.py
docopt