Browse Source

update fabric to do local builds, add script to watch for changes

pull/1/head
wes 8 years ago
parent
commit
8409b4f71f
  1. 2
      build/scripts/tags.min.js
  2. 42
      build/templates/templates/index.html
  3. 11
      build/website.py
  4. 37
      fabfile.py
  5. 4
      src/tags/post.tag
  6. 11
      src/website.py

2
build/scripts/tags.min.js

@ -79,7 +79,7 @@ this.on("mount",
}); });
riot.tag2('post', '<div class="postnav centered"> <button class="{⁗btn btn-primary ⁗ + (this.pid <= 1 ? ⁗disabled⁗ : ⁗ ⁗) + this.prevloading}" onclick="{prev}">Previous Post</button> <button class="{⁗btn btn-primary ⁗ + (this.nomore ? ⁗disabled⁗ : ⁗ ⁗) + this.nextloading}" onclick="{next}">Next Post</button> </div> <h4 class="post centered" if="{nomore}"> No More Posts! </h4> <div if="{!(loading || nomore)}" class="post centered"> <h4>{opts.title}</h4> <h5>By {opts.creator}</h5> <p class="post-content centered text-break">{content}</p> <div class="divider"></div> <comments pid="{pid}"> </comments> </div>', '', '', function(opts) { riot.tag2('post', '<div class="postnav centered"> <button class="{⁗btn btn-primary ⁗ + (this.pid <= 1 ? ⁗disabled⁗ : ⁗ ⁗) + this.prevloading}" onclick="{prev}">Go Back</button> <button class="{⁗btn btn-primary ⁗ + (this.nomore ? ⁗disabled⁗ : ⁗ ⁗) + this.nextloading}" onclick="{next}">Go Forward</button> </div> <h4 class="post centered" if="{nomore}"> No More Posts! </h4> <div if="{!(loading || nomore)}" class="post centered"> <h4>{opts.title}</h4> <h5>By {opts.creator}</h5> <p class="post-content centered text-break">{content}</p> <div class="divider"></div> <comments pid="{pid}"> </comments> </div>', '', '', function(opts) {
var self = this; var self = this;
this.loading = false; this.loading = false;

42
build/templates/templates/index.html

@ -0,0 +1,42 @@
{% block head %}
<meta name="viewport" content="width=device-width, initial-scale=1">
<header class="text-center nav navbar">
<section class="centered page-top navbar-section">
<h1 class="blog-title">blog</h1>
</section>
</header>
{% endblock %}
<html>
<body>
{% block content %}
<posts>
<post></post>
</posts>
<editor>
</editor>
{% endblock %}
<footer class="footer">
</footer>
{% block styles %}
<link rel="stylesheet" href="/blog/styles/spectre.min.css">
<link rel="stylesheet" href="/blog/styles/riotblog.min.css">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/fetch/1.0.0/fetch.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.22.1/ramda.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/riot/2.6.7/riot+compiler.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/riot-route/3.0.2/route.min.js"></script>
<script type="text/javascript" src="/blog/scripts/tags.min.js"></script>
<script type="text/javascript" src="/blog/scripts/riotblog.min.js"></script>
{% endblock %}
</body>
</html>

11
build/website.py

@ -4,8 +4,6 @@ from functools import partial
from flask import abort, Flask, render_template, flash, request, send_from_directory from flask import abort, Flask, render_template, flash, request, send_from_directory
from flask_appconfig import AppConfig from flask_appconfig import AppConfig
from time import sleep
from urllib.parse import unquote from urllib.parse import unquote
from urllib.parse import quote, unquote from urllib.parse import quote, unquote
from json import dumps, loads from json import dumps, loads
@ -56,15 +54,14 @@ def NeverWhere(configfile=None):
@app.route("/blog/switchpost/<pid>") @app.route("/blog/switchpost/<pid>")
def switchPost(pid): def switchPost(pid):
posts = { posts = {
"1" : "Post one is changed! ", "1" : "Post one is now changed as before! ",
"2" : "Post two here and it's changed! " "2" : "Post two here and it's changed again and again! "
} }
return posts.get(pid, "false") return posts.get(pid, "false")
@app.route("/blog/comments/<pid>") @app.route("/blog/comments/<pid>")
def comments(pid): def comments(pid):
sleep(5);
try: try:
return testcomments.get(int(pid), dumps([])) return testcomments.get(int(pid), dumps([]))
except ValueError as e: except ValueError as e:
@ -83,5 +80,5 @@ def NeverWhere(configfile=None):
app = NeverWhere() app = NeverWhere()
#if __name__ == "__main__": if __name__ == "__main__":
#NeverWhere("./appconfig").run(host="localhost", port=8001, debug=True) NeverWhere("./appconfig").run(host="localhost", port=8001, debug=True)

37
fabfile.py

@ -28,6 +28,13 @@ def buildVenv():
with prefix("source ~/build/venv/bin/activate"): with prefix("source ~/build/venv/bin/activate"):
run("pip3 install -r requirements.txt") run("pip3 install -r requirements.txt")
@task
def buildLocalVenv():
with lcd("~/riotblog/build"):
local("virtualenv -p $(which python3) ~/riotblog/build/venv")
with prefix("source ~/riotblog/build/venv/bin/activate"):
local("pip3 install -r requirements.txt")
@task @task
def copyFiles(): def copyFiles():
local("cp ./{blog.ini,blog.service,requirements.txt} ./build/") local("cp ./{blog.ini,blog.service,requirements.txt} ./build/")
@ -37,9 +44,8 @@ def copyFiles():
@task @task
def upload(): def upload():
run("rm -r ~/build")
run("mkdir -p ~/build") run("mkdir -p ~/build")
rsync_project(local_dir="./build/", remote_dir="~/build/", delete=True, exclude=[".git"]) rsync_project(local_dir="./build/", remote_dir="~/build/", delete=False, exclude=[".git"])
@task @task
def serveUp(): def serveUp():
@ -52,7 +58,6 @@ def serveUp():
@task(default=True) @task(default=True)
def build(): def build():
local("rm -r ./build")
local("mkdir -p build/{scripts,styles}") local("mkdir -p build/{scripts,styles}")
buildTags() buildTags()
buildScss() buildScss()
@ -61,3 +66,29 @@ def build():
upload() upload()
buildVenv() buildVenv()
serveUp() serveUp()
@task
def update():
local("mkdir -p build/{scripts,styles}")
buildTags()
buildScss()
minifyJS()
copyFiles()
upload()
serveUp()
@task
def locbuild():
local("mkdir -p build/{scripts,styles}")
buildTags()
buildScss()
minifyJS()
copyFiles()
local("sudo rm -fr /srv/http/riotblog")
local("sudo mkdir -p /srv/http/riotblog")
local("sudo cp -r ./build/* /srv/http/riotblog/")
local("sudo cp /home/wes/riotblog/blog.service /etc/systemd/system/blog.service")
local("sudo systemctl daemon-reload")
local("sudo systemctl enable blog.service")
local("sudo systemctl restart blog.service")
local("sudo systemctl restart nginx")

4
src/tags/post.tag

@ -1,7 +1,7 @@
<post> <post>
<div class="postnav centered"> <div class="postnav centered">
<button class={"btn btn-primary " + (this.pid <= 1 ? "disabled" : " ") + this.prevloading} onclick={prev}>Previous Post</button> <button class={"btn btn-primary " + (this.pid <= 1 ? "disabled" : " ") + this.prevloading} onclick={prev}>Go Back</button>
<button class={"btn btn-primary " + (this.nomore ? "disabled" : " ") + this.nextloading} onclick={next}>Next Post</button> <button class={"btn btn-primary " + (this.nomore ? "disabled" : " ") + this.nextloading} onclick={next}>Go Forward</button>
</div> </div>
<h4 class="post centered" if={nomore}> <h4 class="post centered" if={nomore}>

11
src/website.py

@ -4,8 +4,6 @@ from functools import partial
from flask import abort, Flask, render_template, flash, request, send_from_directory from flask import abort, Flask, render_template, flash, request, send_from_directory
from flask_appconfig import AppConfig from flask_appconfig import AppConfig
from time import sleep
from urllib.parse import unquote from urllib.parse import unquote
from urllib.parse import quote, unquote from urllib.parse import quote, unquote
from json import dumps, loads from json import dumps, loads
@ -56,15 +54,14 @@ def NeverWhere(configfile=None):
@app.route("/blog/switchpost/<pid>") @app.route("/blog/switchpost/<pid>")
def switchPost(pid): def switchPost(pid):
posts = { posts = {
"1" : "Post one is changed! ", "1" : "Post one is now changed as before! ",
"2" : "Post two here and it's changed! " "2" : "Post two here and it's changed again and again! "
} }
return posts.get(pid, "false") return posts.get(pid, "false")
@app.route("/blog/comments/<pid>") @app.route("/blog/comments/<pid>")
def comments(pid): def comments(pid):
sleep(5);
try: try:
return testcomments.get(int(pid), dumps([])) return testcomments.get(int(pid), dumps([]))
except ValueError as e: except ValueError as e:
@ -83,5 +80,5 @@ def NeverWhere(configfile=None):
app = NeverWhere() app = NeverWhere()
#if __name__ == "__main__": if __name__ == "__main__":
#NeverWhere("./appconfig").run(host="localhost", port=8001, debug=True) NeverWhere("./appconfig").run(host="localhost", port=8001, debug=True)

Loading…
Cancel
Save