From d680f1e102fd683e297a66ba376a3fdbf6c68994 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 15 Nov 2025 18:43:55 +0100 Subject: Moved alg to unused (replaced by C program) --- Makefile | 1 - alg | 444 ------------------------------------------------------------- unused/alg | 444 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 444 insertions(+), 445 deletions(-) delete mode 100755 alg create mode 100755 unused/alg diff --git a/Makefile b/Makefile index ef03dfb..b89bba2 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ PREFIX = /usr/local SCRIPTS = 2fa \ - alg \ battery-checknow \ battery-status \ clip \ diff --git a/alg b/alg deleted file mode 100755 index cd5d3c8..0000000 --- a/alg +++ /dev/null @@ -1,444 +0,0 @@ -#!/bin/sh - -# Script to store and access blindsolving algs (speedcubing stuff) - -# Example: alg e FG - opens up editor to edit $basedir/edges/$ebuffer/RD/LD -# Example: alg c UBL E - prints out all first algs for UBL-FDR-* - -usage() { - echo "Usage:" - echo "alg" - echo "alg edit (c|e|w|x|t) [buffer] (1 letter|2 letters)" - echo "alg export (c|e|w|x|t|all)" -} - -default_editor=vi -basedir="$HOME/box/speedcubing/bld/algs" -ebuffer=UR -cbuffer=UFR -wbuffer=UFr -xbuffer=Ubl -tbuffer=Uf - -edge() { - [ "$1" = "a" ] && echo FU - [ "$1" = "b" ] && echo UF - [ "$1" = "c" ] && echo UL - [ "$1" = "d" ] && echo UB - [ "$1" = "e" ] && echo FD - [ "$1" = "f" ] && echo RD - [ "$1" = "g" ] && echo LD - [ "$1" = "i" ] && echo FR - [ "$1" = "j" ] && echo LU - [ "$1" = "k" ] && echo RB - [ "$1" = "l" ] && echo DF - [ "$1" = "m" ] && echo DB - [ "$1" = "n" ] && echo DR - [ "$1" = "o" ] && echo FL - [ "$1" = "p" ] && echo DL - [ "$1" = "r" ] && echo BU - [ "$1" = "s" ] && echo BD - [ "$1" = "t" ] && echo BL - [ "$1" = "u" ] && echo BR - [ "$1" = "v" ] && echo LF - [ "$1" = "w" ] && echo LB - [ "$1" = "z" ] && echo RF -} - -corner() { - [ "$1" = "a" ] && echo FUL - [ "$1" = "b" ] && echo UBL - [ "$1" = "c" ] && echo UFL - [ "$1" = "d" ] && echo UBR - [ "$1" = "e" ] && echo FDR - [ "$1" = "f" ] && echo RDB - [ "$1" = "g" ] && echo LDF - [ "$1" = "j" ] && echo LUF - [ "$1" = "k" ] && echo RUB - [ "$1" = "l" ] && echo DFR - [ "$1" = "m" ] && echo DBR - [ "$1" = "n" ] && echo DFL - [ "$1" = "o" ] && echo FDL - [ "$1" = "p" ] && echo DBL - [ "$1" = "r" ] && echo BUR - [ "$1" = "s" ] && echo BUL - [ "$1" = "t" ] && echo BDL - [ "$1" = "u" ] && echo BDR - [ "$1" = "v" ] && echo LUB - [ "$1" = "w" ] && echo LDB - [ "$1" = "z" ] && echo RDF -} - -wing() { - [ "$1" = "a" ] && echo FUl - [ "$1" = "b" ] && echo URb - [ "$1" = "c" ] && echo ULf - [ "$1" = "d" ] && echo UBl - [ "$1" = "e" ] && echo FDr - [ "$1" = "f" ] && echo RDb - [ "$1" = "g" ] && echo LDf - [ "$1" = "i" ] && echo FRu - [ "$1" = "j" ] && echo LUb - [ "$1" = "k" ] && echo RBu - [ "$1" = "l" ] && echo DFl - [ "$1" = "m" ] && echo DBr - [ "$1" = "n" ] && echo DRf - [ "$1" = "o" ] && echo FLd - [ "$1" = "p" ] && echo DLb - [ "$1" = "r" ] && echo BUr - [ "$1" = "s" ] && echo BDl - [ "$1" = "t" ] && echo BLu - [ "$1" = "u" ] && echo BRd - [ "$1" = "v" ] && echo LFu - [ "$1" = "w" ] && echo LBd - [ "$1" = "x" ] && echo RUf - [ "$1" = "z" ] && echo RFd -} - -xcenter() { - [ "$1" = "a" ] && echo Ful - [ "$1" = "b" ] && echo Ufr - [ "$1" = "c" ] && echo Ufl - [ "$1" = "d" ] && echo Ubr - [ "$1" = "e" ] && echo Fdr - [ "$1" = "f" ] && echo Rdb - [ "$1" = "g" ] && echo Ldf - [ "$1" = "i" ] && echo Fur - [ "$1" = "j" ] && echo Luf - [ "$1" = "k" ] && echo Rub - [ "$1" = "l" ] && echo Dfr - [ "$1" = "m" ] && echo Dbr - [ "$1" = "n" ] && echo Dfl - [ "$1" = "o" ] && echo Fdl - [ "$1" = "p" ] && echo Dbl - [ "$1" = "r" ] && echo Bur - [ "$1" = "s" ] && echo Bul - [ "$1" = "t" ] && echo Bdl - [ "$1" = "u" ] && echo Bdr - [ "$1" = "v" ] && echo Lub - [ "$1" = "w" ] && echo Ldb - [ "$1" = "x" ] && echo Ruf - [ "$1" = "z" ] && echo Rdf -} - -tcenter() { - [ "$1" = "a" ] && echo Fu - [ "$1" = "b" ] && echo Ur - [ "$1" = "c" ] && echo Ul - [ "$1" = "d" ] && echo Ub - [ "$1" = "e" ] && echo Fd - [ "$1" = "f" ] && echo Rd - [ "$1" = "g" ] && echo Ld - [ "$1" = "i" ] && echo Fr - [ "$1" = "j" ] && echo Lu - [ "$1" = "k" ] && echo Rb - [ "$1" = "l" ] && echo Df - [ "$1" = "m" ] && echo Db - [ "$1" = "n" ] && echo Dr - [ "$1" = "o" ] && echo Fl - [ "$1" = "p" ] && echo Dl - [ "$1" = "r" ] && echo Bu - [ "$1" = "s" ] && echo Bd - [ "$1" = "t" ] && echo Bl - [ "$1" = "u" ] && echo Br - [ "$1" = "v" ] && echo Lf - [ "$1" = "w" ] && echo Lb - [ "$1" = "x" ] && echo Ru - [ "$1" = "z" ] && echo Rf -} - -edit() { - mkdir -p "$basedir/$1/$2/$3" - $editor "$basedir/$1/$2/$3/$4" -} - -showall_c() { - all_letters="a b c d e f g j k l m n o p r s t u v w z" - buffer="$1" - firstletter="$2" - firsttarget="$(corner $firstletter)" - for secondletter in $all_letters; do - secondtarget="$(corner $secondletter)" - f="$basedir/corners/$buffer/$firsttarget/$secondtarget" - [ -f "$f" ] || continue - line="$(head -n 1 "$f")" - printf '%s %s\n' "$firstletter$secondletter" "$line" - done -} - -showall_e() { - all_letters="a b c d e f g i j k l m n o p r s t u v w z" - buffer="$1" - firstletter="$2" - firsttarget="$(edge $firstletter)" - for secondletter in $all_letters; do - secondtarget="$(edge $secondletter)" - f="$basedir/edges/$buffer/$firsttarget/$secondtarget" - [ -f "$f" ] || continue - line="$(head -n 1 "$f")" - printf '%s %s\n' "$firstletter$secondletter" "$line" - done -} - -showall_w() { - all_letters="a b c d e f g i j k l m n o p r s t u v w x z" - buffer="$1" - firstletter="$2" - firsttarget="$(wing $firstletter)" - for secondletter in $all_letters; do - secondtarget="$(wing $secondletter)" - f="$basedir/wings/$buffer/$firsttarget/$secondtarget" - [ -f "$f" ] || continue - line="$(head -n 1 "$f")" - printf '%s %s\n' "$firstletter$secondletter" "$line" - done -} - -showall_x() { - all_letters="a b c d e f g i j k l m n o p r s t u v w x z" - buffer="$1" - firstletter="$2" - firsttarget="$(xcenter $firstletter)" - for secondletter in $all_letters; do - secondtarget="$(xcenter $secondletter)" - f="$basedir/xcenters/$buffer/$firsttarget/$secondtarget" - [ -f "$f" ] || continue - line="$(head -n 1 "$f")" - printf '%s %s\n' "$firstletter$secondletter" "$line" - done -} - -showall_t() { - all_letters="a b c d e f g i j k l m n o p r s t u v w x z" - buffer="$1" - firstletter="$2" - firsttarget="$(tcenter $firstletter)" - for secondletter in $all_letters; do - secondtarget="$(tcenter $secondletter)" - f="$basedir/tcenters/$buffer/$firsttarget/$secondtarget" - [ -f "$f" ] || continue - line="$(head -n 1 "$f")" - printf '%s %s\n' "$firstletter$secondletter" "$line" - done -} - -export_csv_c() { - sorted_letters="d b c l n p m k z f j v w g a o e s r u t" - buffer="$cbuffer" - f="$basedir/corners/$buffer" - printf '"",' - for first in $sorted_letters; do - printf '"%s",' "$(corner $first)" - done - printf '\n' - for first in $sorted_letters; do - firstpiece="$(corner $first)" - printf '"%s",' "$firstpiece" - for second in $sorted_letters; do - g="$f/$firstpiece/$(corner $second)" - if [ "$first" = "$second" ] || [ ! -f "$g" ]; then - printf '"",' - else - printf '"%s",' "$(head -n 1 "$g")" - fi - done - printf '\n' - done -} - -export_csv_e() { - sorted_letters="d c b n l p m k z f v j w g i a o e t r u s" - buffer="$ebuffer" - f="$basedir/edges/$buffer" - printf '"",' - for first in $sorted_letters; do - printf '"%s",' "$(edge $first)" - done - printf '\n' - for first in $sorted_letters; do - firstpiece="$(edge $first)" - printf '"%s",' "$firstpiece" - for second in $sorted_letters; do - g="$f/$firstpiece/$(edge $second)" - if [ "$first" = "$second" ] || [ ! -f "$g" ]; then - printf '"",' - else - printf '"%s",' "$(head -n 1 "$g")" - fi - done - printf '\n' - done -} - -export_csv_w() { - sorted_letters="b d c n l p m k x z f v j w g i a o e t r u s" - buffer="$wbuffer" - f="$basedir/wings/$buffer" - printf '"",' - for first in $sorted_letters; do - printf '"%s",' "$(wing $first)" - done - printf '\n' - for first in $sorted_letters; do - firstpiece="$(wing $first)" - printf '"%s",' "$firstpiece" - for second in $sorted_letters; do - g="$f/$firstpiece/$(wing $second)" - if [ "$first" = "$second" ] || [ ! -f "$g" ]; then - printf '"",' - else - printf '"%s",' "$(head -n 1 "$g")" - fi - done - printf '\n' - done -} - -export_csv_x() { - sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" - buffer="$xbuffer" - f="$basedir/xcenters/$buffer" - printf '"",' - for first in $sorted_letters; do - printf '"%s",' "$(xcenter $first)" - done - printf '\n' - for first in $sorted_letters; do - firstpiece="$(xcenter $first)" - printf '"%s",' "$firstpiece" - for second in $sorted_letters; do - g="$f/$firstpiece/$(xcenter $second)" - if [ "$first" = "$second" ] || [ ! -f "$g" ]; then - printf '"",' - else - printf '"%s",' "$(head -n 1 "$g")" - fi - done - printf '\n' - done -} - -export_csv_t() { - sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" - buffer="$tbuffer" - f="$basedir/tcenters/$buffer" - printf '"",' - for first in $sorted_letters; do - printf '"%s",' "$(tcenter $first)" - done - printf '\n' - for first in $sorted_letters; do - firstpiece="$(tcenter $first)" - printf '"%s",' "$firstpiece" - for second in $sorted_letters; do - g="$f/$firstpiece/$(tcenter $second)" - if [ "$first" = "$second" ] || [ ! -f "$g" ]; then - printf '"",' - else - printf '"%s",' "$(head -n 1 "$g")" - fi - done - printf '\n' - done -} - -run() { - case "$1" in - edit) - editor="$default_editor" - shift - ;; - export) - if [ "$2" = "all" ]; then - mkdir -p bldsheets - export_csv_c > bldsheets/corners.csv - export_csv_e > bldsheets/edges.csv - export_csv_w > bldsheets/wings.csv - export_csv_x > bldsheets/xcenters.csv - export_csv_t > bldsheets/tcenters.csv - echo "Sheets exported to bldsheets/" - return - fi - #TODO add option for alternative buffers - [ "$2" != "c" ] && [ "$2" != "e" ] && \ - [ "$2" != "w" ] && [ "$2" != "x" ] && \ - [ "$2" != "t" ] && usage && return - export_csv_$2 - return - ;; - *) - editor="cat" - ;; - esac - - type="$1" - if [ -z "$3" ]; then - letters="$2" - cbuf="$cbuffer" - ebuf="$ebuffer" - wbuf="$wbuffer" - xbuf="$xbuffer" - tbuf="$tbuffer" - else - letters="$3" - cbuf="$2" - ebuf="$2" - wbuf="$2" - xbuf="$2" - tbuf="$2" - fi - - letter1="$(echo "$letters" | cut -c 1)" - letter2="$(echo "$letters" | cut -b 2)" - - [ -z "$letter1" ] && usage && return - - case "$type" in - c) - if [ -n "$letter2" ]; then - edit corners $cbuf $(corner $letter1) $(corner $letter2) - else - showall_c $cbuf $letter1 - fi - ;; - e) - if [ -n "$letter2" ]; then - edit edges $ebuf $(edge $letter1) $(edge $letter2) - else - showall_e $ebuf $letter1 - fi - ;; - w) - if [ -n "$letter2" ]; then - edit wings $wbuf $(wing $letter1) $(wing $letter2) - else - showall_w $wbuf $letter1 - fi - ;; - x) - if [ -n "$letter2" ]; then - edit xcenters $xbuf $(xcenter $letter1) $(xcenter $letter2) - else - showall_x $xbuf $letter1 - fi - ;; - t) - if [ -n "$letter2" ]; then - edit tcenters $tbuf $(tcenter $letter1) $(tcenter $letter2) - else - showall_t $tbuf $letter1 - fi - ;; - *) - usage - ;; - esac -} - -if [ -n "$1" ]; then - run $@ -else - while read -r args; do - [ -n "$args" ] && run $args - done -fi diff --git a/unused/alg b/unused/alg new file mode 100755 index 0000000..cd5d3c8 --- /dev/null +++ b/unused/alg @@ -0,0 +1,444 @@ +#!/bin/sh + +# Script to store and access blindsolving algs (speedcubing stuff) + +# Example: alg e FG - opens up editor to edit $basedir/edges/$ebuffer/RD/LD +# Example: alg c UBL E - prints out all first algs for UBL-FDR-* + +usage() { + echo "Usage:" + echo "alg" + echo "alg edit (c|e|w|x|t) [buffer] (1 letter|2 letters)" + echo "alg export (c|e|w|x|t|all)" +} + +default_editor=vi +basedir="$HOME/box/speedcubing/bld/algs" +ebuffer=UR +cbuffer=UFR +wbuffer=UFr +xbuffer=Ubl +tbuffer=Uf + +edge() { + [ "$1" = "a" ] && echo FU + [ "$1" = "b" ] && echo UF + [ "$1" = "c" ] && echo UL + [ "$1" = "d" ] && echo UB + [ "$1" = "e" ] && echo FD + [ "$1" = "f" ] && echo RD + [ "$1" = "g" ] && echo LD + [ "$1" = "i" ] && echo FR + [ "$1" = "j" ] && echo LU + [ "$1" = "k" ] && echo RB + [ "$1" = "l" ] && echo DF + [ "$1" = "m" ] && echo DB + [ "$1" = "n" ] && echo DR + [ "$1" = "o" ] && echo FL + [ "$1" = "p" ] && echo DL + [ "$1" = "r" ] && echo BU + [ "$1" = "s" ] && echo BD + [ "$1" = "t" ] && echo BL + [ "$1" = "u" ] && echo BR + [ "$1" = "v" ] && echo LF + [ "$1" = "w" ] && echo LB + [ "$1" = "z" ] && echo RF +} + +corner() { + [ "$1" = "a" ] && echo FUL + [ "$1" = "b" ] && echo UBL + [ "$1" = "c" ] && echo UFL + [ "$1" = "d" ] && echo UBR + [ "$1" = "e" ] && echo FDR + [ "$1" = "f" ] && echo RDB + [ "$1" = "g" ] && echo LDF + [ "$1" = "j" ] && echo LUF + [ "$1" = "k" ] && echo RUB + [ "$1" = "l" ] && echo DFR + [ "$1" = "m" ] && echo DBR + [ "$1" = "n" ] && echo DFL + [ "$1" = "o" ] && echo FDL + [ "$1" = "p" ] && echo DBL + [ "$1" = "r" ] && echo BUR + [ "$1" = "s" ] && echo BUL + [ "$1" = "t" ] && echo BDL + [ "$1" = "u" ] && echo BDR + [ "$1" = "v" ] && echo LUB + [ "$1" = "w" ] && echo LDB + [ "$1" = "z" ] && echo RDF +} + +wing() { + [ "$1" = "a" ] && echo FUl + [ "$1" = "b" ] && echo URb + [ "$1" = "c" ] && echo ULf + [ "$1" = "d" ] && echo UBl + [ "$1" = "e" ] && echo FDr + [ "$1" = "f" ] && echo RDb + [ "$1" = "g" ] && echo LDf + [ "$1" = "i" ] && echo FRu + [ "$1" = "j" ] && echo LUb + [ "$1" = "k" ] && echo RBu + [ "$1" = "l" ] && echo DFl + [ "$1" = "m" ] && echo DBr + [ "$1" = "n" ] && echo DRf + [ "$1" = "o" ] && echo FLd + [ "$1" = "p" ] && echo DLb + [ "$1" = "r" ] && echo BUr + [ "$1" = "s" ] && echo BDl + [ "$1" = "t" ] && echo BLu + [ "$1" = "u" ] && echo BRd + [ "$1" = "v" ] && echo LFu + [ "$1" = "w" ] && echo LBd + [ "$1" = "x" ] && echo RUf + [ "$1" = "z" ] && echo RFd +} + +xcenter() { + [ "$1" = "a" ] && echo Ful + [ "$1" = "b" ] && echo Ufr + [ "$1" = "c" ] && echo Ufl + [ "$1" = "d" ] && echo Ubr + [ "$1" = "e" ] && echo Fdr + [ "$1" = "f" ] && echo Rdb + [ "$1" = "g" ] && echo Ldf + [ "$1" = "i" ] && echo Fur + [ "$1" = "j" ] && echo Luf + [ "$1" = "k" ] && echo Rub + [ "$1" = "l" ] && echo Dfr + [ "$1" = "m" ] && echo Dbr + [ "$1" = "n" ] && echo Dfl + [ "$1" = "o" ] && echo Fdl + [ "$1" = "p" ] && echo Dbl + [ "$1" = "r" ] && echo Bur + [ "$1" = "s" ] && echo Bul + [ "$1" = "t" ] && echo Bdl + [ "$1" = "u" ] && echo Bdr + [ "$1" = "v" ] && echo Lub + [ "$1" = "w" ] && echo Ldb + [ "$1" = "x" ] && echo Ruf + [ "$1" = "z" ] && echo Rdf +} + +tcenter() { + [ "$1" = "a" ] && echo Fu + [ "$1" = "b" ] && echo Ur + [ "$1" = "c" ] && echo Ul + [ "$1" = "d" ] && echo Ub + [ "$1" = "e" ] && echo Fd + [ "$1" = "f" ] && echo Rd + [ "$1" = "g" ] && echo Ld + [ "$1" = "i" ] && echo Fr + [ "$1" = "j" ] && echo Lu + [ "$1" = "k" ] && echo Rb + [ "$1" = "l" ] && echo Df + [ "$1" = "m" ] && echo Db + [ "$1" = "n" ] && echo Dr + [ "$1" = "o" ] && echo Fl + [ "$1" = "p" ] && echo Dl + [ "$1" = "r" ] && echo Bu + [ "$1" = "s" ] && echo Bd + [ "$1" = "t" ] && echo Bl + [ "$1" = "u" ] && echo Br + [ "$1" = "v" ] && echo Lf + [ "$1" = "w" ] && echo Lb + [ "$1" = "x" ] && echo Ru + [ "$1" = "z" ] && echo Rf +} + +edit() { + mkdir -p "$basedir/$1/$2/$3" + $editor "$basedir/$1/$2/$3/$4" +} + +showall_c() { + all_letters="a b c d e f g j k l m n o p r s t u v w z" + buffer="$1" + firstletter="$2" + firsttarget="$(corner $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(corner $secondletter)" + f="$basedir/corners/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_e() { + all_letters="a b c d e f g i j k l m n o p r s t u v w z" + buffer="$1" + firstletter="$2" + firsttarget="$(edge $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(edge $secondletter)" + f="$basedir/edges/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_w() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(wing $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(wing $secondletter)" + f="$basedir/wings/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_x() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(xcenter $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(xcenter $secondletter)" + f="$basedir/xcenters/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_t() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(tcenter $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(tcenter $secondletter)" + f="$basedir/tcenters/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +export_csv_c() { + sorted_letters="d b c l n p m k z f j v w g a o e s r u t" + buffer="$cbuffer" + f="$basedir/corners/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(corner $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(corner $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(corner $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_e() { + sorted_letters="d c b n l p m k z f v j w g i a o e t r u s" + buffer="$ebuffer" + f="$basedir/edges/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(edge $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(edge $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(edge $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_w() { + sorted_letters="b d c n l p m k x z f v j w g i a o e t r u s" + buffer="$wbuffer" + f="$basedir/wings/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(wing $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(wing $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(wing $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_x() { + sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" + buffer="$xbuffer" + f="$basedir/xcenters/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(xcenter $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(xcenter $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(xcenter $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_t() { + sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" + buffer="$tbuffer" + f="$basedir/tcenters/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(tcenter $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(tcenter $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(tcenter $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +run() { + case "$1" in + edit) + editor="$default_editor" + shift + ;; + export) + if [ "$2" = "all" ]; then + mkdir -p bldsheets + export_csv_c > bldsheets/corners.csv + export_csv_e > bldsheets/edges.csv + export_csv_w > bldsheets/wings.csv + export_csv_x > bldsheets/xcenters.csv + export_csv_t > bldsheets/tcenters.csv + echo "Sheets exported to bldsheets/" + return + fi + #TODO add option for alternative buffers + [ "$2" != "c" ] && [ "$2" != "e" ] && \ + [ "$2" != "w" ] && [ "$2" != "x" ] && \ + [ "$2" != "t" ] && usage && return + export_csv_$2 + return + ;; + *) + editor="cat" + ;; + esac + + type="$1" + if [ -z "$3" ]; then + letters="$2" + cbuf="$cbuffer" + ebuf="$ebuffer" + wbuf="$wbuffer" + xbuf="$xbuffer" + tbuf="$tbuffer" + else + letters="$3" + cbuf="$2" + ebuf="$2" + wbuf="$2" + xbuf="$2" + tbuf="$2" + fi + + letter1="$(echo "$letters" | cut -c 1)" + letter2="$(echo "$letters" | cut -b 2)" + + [ -z "$letter1" ] && usage && return + + case "$type" in + c) + if [ -n "$letter2" ]; then + edit corners $cbuf $(corner $letter1) $(corner $letter2) + else + showall_c $cbuf $letter1 + fi + ;; + e) + if [ -n "$letter2" ]; then + edit edges $ebuf $(edge $letter1) $(edge $letter2) + else + showall_e $ebuf $letter1 + fi + ;; + w) + if [ -n "$letter2" ]; then + edit wings $wbuf $(wing $letter1) $(wing $letter2) + else + showall_w $wbuf $letter1 + fi + ;; + x) + if [ -n "$letter2" ]; then + edit xcenters $xbuf $(xcenter $letter1) $(xcenter $letter2) + else + showall_x $xbuf $letter1 + fi + ;; + t) + if [ -n "$letter2" ]; then + edit tcenters $tbuf $(tcenter $letter1) $(tcenter $letter2) + else + showall_t $tbuf $letter1 + fi + ;; + *) + usage + ;; + esac +} + +if [ -n "$1" ]; then + run $@ +else + while read -r args; do + [ -n "$args" ] && run $args + done +fi -- cgit v1.3