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
 |