aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-03-20 20:57:22 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2024-03-20 20:57:22 +0100
commit5f56504c8db0911309cef2983549a2ecffd70f18 (patch)
tree85e1b5a4076729597f45a831d9594f9cd240445c
parentb59361e30ecaae169fd40d0d5005606bbca9d44d (diff)
downloadscripts-5f56504c8db0911309cef2983549a2ecffd70f18.tar.gz
scripts-5f56504c8db0911309cef2983549a2ecffd70f18.zip
Added alg for BLD algs database
Diffstat (limited to '')
-rw-r--r--Makefile1
-rwxr-xr-xalg180
2 files changed, 181 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index b8542e3..1a14061 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
1PREFIX = /usr/local 1PREFIX = /usr/local
2 2
3SCRIPTS = addressgrep \ 3SCRIPTS = addressgrep \
4 alg \
4 battery-checknow \ 5 battery-checknow \
5 battery-status \ 6 battery-status \
6 clip \ 7 clip \
diff --git a/alg b/alg
new file mode 100755
index 0000000..b6e39c2
--- /dev/null
+++ b/alg
@@ -0,0 +1,180 @@
1#!/bin/sh
2
3# Script to store and access blindsolving algs (speedcubing stuff)
4
5# Example: alg e FG - opens up editor to edit $basedir/edges/$ebuffer/RD/LD
6# Example: alg c UBL E - prints out all first algs for UBL-FDR-*
7
8usage() {
9 echo "Usage: alg [c|e|w] [buffer] [1 letter|2 letters]"
10}
11
12editor=vi
13basedir="$HOME/box/speedcubing/bld/algs"
14ebuffer=UR
15cbuffer=UFR
16wbuffer=UFr
17
18edge() {
19 [ "$1" = "A" ] && echo FU
20 [ "$1" = "B" ] && echo UF
21 [ "$1" = "C" ] && echo UL
22 [ "$1" = "D" ] && echo UB
23 [ "$1" = "E" ] && echo FD
24 [ "$1" = "F" ] && echo RD
25 [ "$1" = "G" ] && echo LD
26 [ "$1" = "I" ] && echo FR
27 [ "$1" = "J" ] && echo LU
28 [ "$1" = "K" ] && echo RB
29 [ "$1" = "L" ] && echo DF
30 [ "$1" = "M" ] && echo DB
31 [ "$1" = "N" ] && echo DR
32 [ "$1" = "O" ] && echo FL
33 [ "$1" = "P" ] && echo DL
34 [ "$1" = "R" ] && echo BU
35 [ "$1" = "S" ] && echo BD
36 [ "$1" = "T" ] && echo BL
37 [ "$1" = "U" ] && echo BR
38 [ "$1" = "V" ] && echo LF
39 [ "$1" = "W" ] && echo LB
40 [ "$1" = "Z" ] && echo RF
41}
42
43corner() {
44 [ "$1" = "A" ] && echo FUL
45 [ "$1" = "B" ] && echo UBL
46 [ "$1" = "C" ] && echo UFL
47 [ "$1" = "D" ] && echo UBR
48 [ "$1" = "E" ] && echo FDR
49 [ "$1" = "F" ] && echo RDB
50 [ "$1" = "G" ] && echo LDF
51 [ "$1" = "J" ] && echo LUF
52 [ "$1" = "K" ] && echo RUB
53 [ "$1" = "L" ] && echo DFR
54 [ "$1" = "M" ] && echo DBR
55 [ "$1" = "N" ] && echo DFL
56 [ "$1" = "O" ] && echo FDL
57 [ "$1" = "P" ] && echo DBL
58 [ "$1" = "R" ] && echo BUR
59 [ "$1" = "S" ] && echo BUL
60 [ "$1" = "T" ] && echo BDL
61 [ "$1" = "U" ] && echo BDR
62 [ "$1" = "V" ] && echo LUB
63 [ "$1" = "W" ] && echo LDB
64 [ "$1" = "Z" ] && echo RDF
65}
66
67wing() {
68 [ "$1" = "A" ] && echo FUl
69 [ "$1" = "B" ] && echo URb
70 [ "$1" = "C" ] && echo ULf
71 [ "$1" = "D" ] && echo UBl
72 [ "$1" = "E" ] && echo FDr
73 [ "$1" = "F" ] && echo RDb
74 [ "$1" = "G" ] && echo LDf
75 [ "$1" = "I" ] && echo FRu
76 [ "$1" = "J" ] && echo LUb
77 [ "$1" = "K" ] && echo RBu
78 [ "$1" = "L" ] && echo DFl
79 [ "$1" = "M" ] && echo DBr
80 [ "$1" = "N" ] && echo DRf
81 [ "$1" = "O" ] && echo FLd
82 [ "$1" = "P" ] && echo DLb
83 [ "$1" = "R" ] && echo BUr
84 [ "$1" = "S" ] && echo BDl
85 [ "$1" = "T" ] && echo BLu
86 [ "$1" = "U" ] && echo BRd
87 [ "$1" = "V" ] && echo LFu
88 [ "$1" = "W" ] && echo LBd
89 [ "$1" = "X" ] && echo LUf
90 [ "$1" = "Z" ] && echo RFd
91}
92
93edit() {
94 mkdir -p "$basedir/$1/$2/$3"
95 $editor "$basedir/$1/$2/$3/$4"
96}
97
98showall_c() {
99 all_letters="A B C D E F G J K L M N O P R S T U V W Z"
100 buffer="$1"
101 firstletter="$2"
102 firsttarget="$(corner $firstletter)"
103 for secondletter in $all_letters; do
104 secondtarget="$(corner $secondletter)"
105 f="$basedir/corners/$buffer/$firsttarget/$secondtarget"
106 [ -f "$f" ] || continue
107 line="$(head -n 1 "$f")"
108 printf '%s %s\n' "$firstletter$secondletter" "$line"
109 done
110}
111
112showall_e() {
113 all_letters="A B C D E F G I J K L M N O P R S T U V W Z"
114 buffer="$1"
115 firstletter="$2"
116 firsttarget="$(edge $firstletter)"
117 for secondletter in $all_letters; do
118 secondtarget="$(edge $secondletter)"
119 f="$basedir/edges/$buffer/$firsttarget/$secondtarget"
120 [ -f "$f" ] || continue
121 line="$(head -n 1 "$f")"
122 printf '%s %s\n' "$firstletter$secondletter" "$line"
123 done
124}
125
126showall_w() {
127 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"
128 buffer="$1"
129 firstletter="$2"
130 firsttarget="$(wing $firstletter)"
131 for secondletter in $all_letters; do
132 secondtarget="$(wing $secondletter)"
133 f="$basedir/wings/$buffer/$firsttarget/$secondtarget"
134 [ -f "$f" ] || continue
135 line="$(head -n 1 "$f")"
136 printf '%s %s\n' "$firstletter$secondletter" "$line"
137 done
138}
139
140type="$1"
141if [ -z "$3" ]; then
142 letters="$2"
143else
144 letters="$3"
145 cbuffer="$2"
146 ebuffer="$2"
147 wbuffer="$2"
148fi
149
150letter1="$(echo "$letters" | cut -c 1)"
151letter2="$(echo "$letters" | cut -b 2)"
152
153[ -z "$letter1" ] && usage && exit 1
154
155case "$type" in
156c)
157 if [ -n "$letter2" ]; then
158 edit corners $cbuffer $(corner $letter1) $(corner $letter2)
159 else
160 showall_c $cbuffer $letter1
161 fi
162 ;;
163e)
164 if [ -n "$letter2" ]; then
165 edit edges $ebuffer $(edge $letter1) $(edge $letter2)
166 else
167 showall_e $ebuffer $letter1
168 fi
169 ;;
170w)
171 if [ -n "$letter2" ]; then
172 edit wings $wbuffer $(wing $letter1) $(wing $letter2)
173 else
174 showall_w $wbuffer $letter1
175 fi
176 ;;
177*)
178 usage && exit 1
179 ;;
180esac

Generated with cgit - Back to sebastiano.tronto.net