db := 'db/game.rec' # show all commands default: just --list --unsorted # super plain boring output _map: recsel -t game {{db}} | recfmt '"{{{{name}}": "{{{{id}}", ' # build dot file (tmp file) _dot: make dot # build data object (tmp file) _data: make data # build a graph of all the nodes graph: make graph # plain output build: _data mustache tmp/data {{db}} \ | recfmt '{{{{id}}: {{{{text}}|' \ | sed -e 's/|/\n\n/g' \ # read the story browse: just build | fmt | less # remove generated files clean: rm -f tmp/* out/* # word count and number of nodes info: echo "$(recinf -t game {{db}}) nodes" \ && echo "$(recsel -t game -P text {{db}} | wc -w | awk '{ print $1}') words" # rebulid graph on change watch-graph: ls {{db}} | entr -c just graph # rebulid pdf on change watch-pdf: ls {{db}} | entr -c just pdf # shuffle ids _shuffle: recsel -t game -P id -C db/game.rec \ | shuf --random-source=/dev/urandom \ | gsed -e '/^0$/d' -e '1 i 0' # story in random order, starting with 0 randomize: for n in $(just _shuffle); do recsel -t game -e "id='$n'" db/game.rec; echo; done # renumber the randomized list renumber: #!/usr/bin/env zsh tmpfile=$(mktemp) echo "$tmpfile" cp {{db}} {{db}}.bak just randomize > "$tmpfile" j=$(recinf -t game "$tmpfile") recdel -t game -n 0-$((j - 1)) {{db}} for i in {0..$((j - 1))} do name=$(recsel -n "$i" -P name "$tmpfile") text=$(recsel -n "$i" -P text "$tmpfile") #echo "$i $name $text" recins -t game -f name -v "$name" -f text -v "$text" {{db}} done rm "$tmpfile" # make ms _ms: make ms # make pdf pdf: make pdf # make ascii doc ascii: make ascii # make twee twee: #!/usr/bin/env zsh exec > out/story.twee cat<