From 1d0ab35c076208fa232cc155cbdd7d49430092a6 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 27 Jan 2024 17:18:11 +0100 Subject: started page on DR triggers --- src/speedcubing/triggers/gen.sh | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 src/speedcubing/triggers/gen.sh (limited to 'src/speedcubing/triggers/gen.sh') diff --git a/src/speedcubing/triggers/gen.sh b/src/speedcubing/triggers/gen.sh new file mode 100755 index 0000000..83b9f51 --- /dev/null +++ b/src/speedcubing/triggers/gen.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +invert() { + # To invert an alg, replace R2 with RR, B' with B3 and then BBB + # and similar. Then reverse the string and triple every letter. + # It's a ugly hack, but it works. + alg="$(echo "$1" | tr -d ' ' | tr \' 3)" + echo "$alg" | sed -E 's/(.)(3)/\1\1\1/g' | \ + sed -E 's/(.)(2)/\1\1/g' | sed 's/./&&&/g' | rev +} + +gen() { + [ -e "trigger_$1.png" ] || cubeviz trigger "$1" > /dev/null 2>&1 +} + +printitem() { + alg="$1" + if [ -n "$alg" ]; then + inv="$(invert "$alg")" + echo "Working on alg $alg with inverse $inv" 1>&2 + gen "$inv" + printf '%s\n' "$alg" + printf '\n' "$inv" + printf '\n' + else + printf '\n' + fi +} + +maketable() { + alg1="$(echo "$1" | sed 's/;.*$//' | tr -d '!')" + alg2="$(echo "$1" | sed 's/.*;//')" + printf '\n' + printitem "$alg1" + printitem "$alg2" + printf '
\n' +} + +while read -r line; do + algs="$(echo "$line" | grep '^!')" + if [ -z "$algs" ]; then + echo "$line" + else + maketable "$line" + fi +done -- cgit v1.3