You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.4 KiB
57 lines
1.4 KiB
from __future__ import with_statement
|
|
from fabric.api import *
|
|
from fabric.contrib.console import confirm
|
|
from fabric.contrib.project import rsync_project
|
|
import fabric.operations as op
|
|
|
|
env.hosts = ["wes@mgoal.ca:444"]
|
|
|
|
@task
|
|
def buildTags():
|
|
with lcd("./build"):
|
|
local("riot ../src/tags scripts/tags.min.js")
|
|
|
|
@task
|
|
def buildScss():
|
|
with lcd("./build"):
|
|
local("sassc ../src/styles/riotblog.scss > styles/riotblog.min.css")
|
|
|
|
@task
|
|
def minifyJS():
|
|
with lcd("./build"):
|
|
local("uglifyjs ../src/scripts/riotblog.js > scripts/riotblog.min.js")
|
|
|
|
@task
|
|
def buildVenv():
|
|
local("virtualenv -p $(which python3) ./venv")
|
|
with prefix("source ./venv/bin/activate"):
|
|
local("pip3 install -r requirements.txt")
|
|
local("mv venv ./build/")
|
|
|
|
@task
|
|
def copyFiles():
|
|
local("cp ./{blog.ini,blog.service} ./build/")
|
|
local("cp ./src/*py ./build/")
|
|
local("cp ./src/styles/*.css ./build/styles/")
|
|
local("cp -r ./src/templates ./build/templates")
|
|
|
|
@task
|
|
def upload():
|
|
run("mkdir -p ~/build")
|
|
rsync_project(local_dir="./build/", remote_dir="~/build/", delete=True, exclude=[".git"])
|
|
|
|
@task
|
|
def serveUp():
|
|
sudo("cp -r /home/wes/build /srv/riotblog")
|
|
|
|
@task(default=True)
|
|
def build():
|
|
local("rm -r ./build")
|
|
local("mkdir -p build/{scripts,styles}")
|
|
buildTags()
|
|
buildScss()
|
|
minifyJS()
|
|
buildVenv()
|
|
copyFiles()
|
|
upload()
|
|
serveUp()
|
|
|