samhuri.net/bin/compile.sh

55 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
# bail on errors
set -e
DIR=$(dirname "$0")
HARP="$DIR/../node_modules/.bin/harp"
TARGET="${1:-www}"
function main() {
echo "* compile rss feed"
compile_rss
echo "* harp compile . $TARGET"
rm -rf "$TARGET"
"$HARP" compile . "$TARGET"
echo "* mungle html to make it available without the extension"
munge_html
echo "* minify js"
minify_js
echo "* minify css"
minify_css
}
function compile_rss() {
$DIR/rss.rb public
}
function munge_html() {
for FILE in "$TARGET"/*.html "$TARGET"/posts/*.html "$TARGET"/projects/*.html; do
[[ "${FILE##*/}" = "index.html" ]] && continue
# make posts available without an .html extension
FILE_DIR="${FILE%.html}"
mkdir -p "$FILE_DIR"
mv "$FILE" "$FILE_DIR/index.html"
done
}
function minify_js() {
for FILE in "$TARGET"/js/*.js; do
$DIR/minify-js.sh "$FILE" > /tmp/minified.js && mv /tmp/minified.js "$FILE" || echo "* failed to minify $FILE"
done
}
function minify_css() {
for FILE in "$TARGET"/css/*.css; do
$DIR/minify-css.sh "$FILE" > /tmp/minified.css && mv /tmp/minified.css "$FILE" || echo "* failed to minify $FILE"
done
}
main