Files
cutieguwu-site/build.sh
T
2026-04-02 22:40:27 -04:00

134 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/bash
#
# I'm new to bash scripting, so give me a break.
# I know that this is probably crap, but it's cheap, dirty, and does the job.
GREEN='\e[32m'
CYAN='\e[36m'
SRC='src/'
PAGES='pages/'
# The "a" is just to make this work if no characters are present in $@
args=$@
args+=('a')
if [[ ${#args} -gt 1 ]]
then
args=$@
else
args='inflate style copy conv-img'
fi
# Cheap patch for copying in case the paths aren't present.
mkdir -p target
for x in $args
do
files=()
target_ext=''
target_opt=''
if [[ "$x" == 'inflate' ]]
then
cmd='python balloon.py'
files=($(
find src -path "src/pages/*"\
-type f\
-name "*.html"\
-print
))
target_ext='.html'
action=Inflating...
elif [[ "$x" == 'style' ]]
then
cmd='sass --update'
files=($(
find src -path "src/styles/*"\
-prune\
-type f\
-name "*.scss"\
-print
))
target_ext='.css'
action=Styling...
elif [[ "$x" == 'copy' ]]
then
cp -Ra --update 'src/common/.' 'target/'
mkdir -p 'target/img/'
cp --update 'src/img/favicon.png' 'target/img/favicon.png'
action=Copying...
elif [[ "$x" == 'conv-img' ]]
then
cmd='cwebp -z 9 -m 6'
files=($(
find src -path "src/img/*"\
-type f\
-not -name "favicon.png"\
-print
))
target_ext='.webp'
target_opt='-o'
mkdir -p "target/img/blog/posts"
action='Converting Images...'
elif [[ "$x" == 'clean' ]]
then
echo -e "${GREEN}Cleaning..."
rm -Rv target
break
else
echo -e "${GREEN}Usage:${CYAN} build.sh [OPTIONS] [COMMAND]"
echo
echo -e "${GREEN}Options:${CYAN}"
echo ' -h, --help Print help'
echo
echo
echo -e "${GREEN}Commands:${CYAN}"
echo ' conv-img Convert images to target'
echo ' copy Copy assets to target'
echo ' inflate Inflate the HTML source'
echo ' style Compile SCSS to CSS'
echo
echo ' clean Wipe the target directory'
break
fi
echo -e "$GREEN$action"
for src in "${files[@]}"
do
filename=$(basename "$src")
path="${src//$SRC}"
path="${path//$PAGES}"
path="${path//$filename}"
target="target/$path${filename%.*}$target_ext"
echo -e "$CYAN $src -> $target"
eval "$cmd $src $target_opt $target"
done
done
echo -e "$GREEN"Done.