#!/bin/bash SONGS_PATH="content/" usage() { cat < [options] Commands: help Show this help message and exit new [name] Create a new song [with the specified name] edit Edit song with $EDITOR (taken from the EDITOR env var) iedit Interactive edit with PDF preview Examples: $0 help $0 new [song-name] $0 edit $0 iedit EOF exit 1 } create_new_song() { if [ -z "$name" ]; then read -p "Song name (file-name-in-path): " name fi read -p "Song title: " title read -p "Artist: " artist read -p "Category: " category mkdir -p "$SONGS_PATH/$name" echo -e "{title: $title}\n{artist: $artist}" > "$SONGS_PATH/$name/$name.cho" echo -e "+++\ntitle = \"$title\"\n[taxonomies]\ncategory = [\"$category\"]\nartist = [\"$artist\"]\n+++" > "$SONGS_PATH/$name/index.md" echo "Song $name created." } if [ "$#" -lt 1 ]; then usage fi case "$1" in new) if [ "$#" -eq 2 ]; then name="$2" fi create_new_song ;; edit) if [ "$#" -eq 2 ]; then $EDITOR "content/$2/$2.cho" else echo -e "Missing song name\n" usage fi ;; iedit) if [ "$#" -eq 2 ]; then touch "content/$2/$2.pdf" zathura "content/$2/$2.pdf" & # I don't give a fuck; use Zathura or send a patch $EDITOR "content/$2/$2.cho" else echo -e "Missing song name\n" usage fi ;; help) usage ;; *) echo -e "Invalid argument: $1\n" usage ;; esac