Browse Source

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

pull/1/head
wes 7 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;
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_appconfig import AppConfig
from time import sleep
from urllib.parse import unquote
from urllib.parse import quote, unquote
from json import dumps, loads
@ -56,15 +54,14 @@ def NeverWhere(configfile=None):
@app.route("/blog/switchpost/<pid>")
def switchPost(pid):
posts = {
"1" : "Post one is changed! ",
"2" : "Post two here and it's changed! "
"1" : "Post one is now changed as before! ",
"2" : "Post two here and it's changed again and again! "
}
return posts.get(pid, "false")
@app.route("/blog/comments/<pid>")
def comments(pid):
sleep(5);
try:
return testcomments.get(int(pid), dumps([]))
except ValueError as e:
@ -83,5 +80,5 @@ def NeverWhere(configfile=None):
app = NeverWhere()
#if __name__ == "__main__":
#NeverWhere("./appconfig").run(host="localhost", port=8001, debug=True)
if __name__ == "__main__":
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"):
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
def copyFiles():
local("cp ./{blog.ini,blog.service,requirements.txt} ./build/")
@ -37,9 +44,8 @@ def copyFiles():
@task
def upload():
run("rm -r ~/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
def serveUp():
@ -52,7 +58,6 @@ def serveUp():
@task(default=True)
def build():
local("rm -r ./build")
local("mkdir -p build/{scripts,styles}")
buildTags()
buildScss()
@ -61,3 +66,29 @@ def build():
upload()
buildVenv()
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>
<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>
<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}>

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

Loading…
Cancel
Save