56 lines
1.1 KiB
Bash
Executable file
56 lines
1.1 KiB
Bash
Executable file
#! /usr/bin/env bash
|
|
|
|
usage () {
|
|
echo "\
|
|
Usage: gengem [options]
|
|
|
|
Options:
|
|
-h, --help show this message"
|
|
}
|
|
|
|
generate() {
|
|
DIR=~/dev/gemini-capsule/
|
|
|
|
rm articles.gmi
|
|
|
|
echo "generating articles.gmi"
|
|
ls $DIR/content/gemlog | grep -v 'index' | sort -r \
|
|
| while read fname; do
|
|
DATE=$(echo "$fname" | sed "s/_.*//")
|
|
TITLE=$(head -1 $DIR/content/gemlog/$fname | sed "s/# //")
|
|
echo "=> $fname $DATE - $TITLE" >> $DIR/articles.gmi
|
|
done
|
|
|
|
echo "generating gemlog/index.gmi"
|
|
sed -i -e "/^## logs/,//{
|
|
/^#/!d
|
|
}" -e "/^## logs/{
|
|
a
|
|
r $DIR/articles.gmi
|
|
}" $DIR/content/gemlog/index.gmi
|
|
|
|
echo "generating index.gmi"
|
|
printf '
|
|
=> tinylog.gmi tinylogs go here
|
|
=> gemlog/index.gmi full gemlogs here\n\n%s' "$(head $DIR/articles.gmi)" \
|
|
| cat $DIR/in.gmi - > $DIR/content/index.gmi
|
|
|
|
echo "DONE :)"
|
|
}
|
|
|
|
synchronise() {
|
|
DIR=~/dev/gemini-capsule/content/
|
|
TSERVER=inol@hypatia.stevengibone.com:/home/inol/gemini
|
|
rsync -aP -e "ssh -p 1312" $DIR $TSERVER
|
|
}
|
|
|
|
if [[ $# == 0 || $1 == "-h" || $1 == "--help" ]]; then
|
|
usage
|
|
exit 0
|
|
elif [[ $1 == "gen" ]]; then
|
|
generate
|
|
exit 0
|
|
elif [[ $1 == "sync" ]]; then
|
|
synchronise
|
|
exit 0
|
|
fi
|