1
1
#! /usr/bin/env bash
2
2
3
+ PORT=${PORT: 80}
3
4
VERBOSE=${VERBOSE:- }
4
5
5
6
FORCE=${FORCE:- }
@@ -22,37 +23,39 @@ MINT_003="or(99@thresh(2,thresh(2,pk(A1),pk(A2),pk(A3),after(1004)),or(10@thresh
22
23
# # MINT_004
23
24
MINT_004=" or(99@thresh(3,thresh(2,pk(P1),pk(P2),pk(P3),after(1002),after(1003)),thresh(2,pk(A1),pk(A2),pk(A3),after(1004)),thresh(1,pk(SA1),pk(SA2),pk(SA3))),1@and(thresh(2,pk(M1),pk(M2),pk(M3)),after(1005)))"
24
25
26
+ function examples(){
25
27
26
- function help {
27
-
28
- printf " Usage:\n"
29
- printf " \n"
30
- printf " miniscript-docker\n"
31
- printf " miniscript-docker [-v --verbose]\n"
28
+ printf " Examples:\n"
29
+ printf " \n"
30
+ printf " miniscript-docker run \n
31
+ \'thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100))\'
32
+ "
33
+ printf "
34
+ \'and_v(or_c(pk(B),or_c(pk(C),v:older(1000))),pk(A))\'
35
+ "
36
+ printf "
37
+ \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))\'
38
+ "
39
+ printf " \n"
40
+ printf " MinT Examples:\n"
32
41
printf " \n"
33
- printf " miniscript-docker help [-h --help]\n"
34
- printf " miniscript-docker make [-m --make]\n"
35
- printf " miniscript-docker build [-b --build]\n"
42
+ printf " MinT-000"
36
43
printf " \n"
37
- printf " miniscript-docker run <miniscript>"
44
+ printf "
45
+ \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))\'
46
+ "
38
47
printf " \n"
48
+ printf " MinT-001"
39
49
printf " \n"
40
- printf " Examples:\n"
50
+ printf "
51
+ \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))\'
52
+ "
41
53
printf " \n"
42
- printf " miniscript-docker run \'thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100))\'\n"
43
- printf " miniscript-docker run \'and_v(or_c(pk(B),or_c(pk(C),v:older(1000))),pk(A))'\n"
44
- printf " miniscript-docker run \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))'\n"
54
+ printf " MinT-002.1"
45
55
printf " \n"
46
- printf " Miniscript Templates (MinT)\n"
47
- printf " \n"
48
- printf " MinT-000\n"
49
- printf " miniscript-docker run \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))'\n"
50
- printf " \n"
51
- printf " MinT-001\n"
52
- printf " miniscript-docker run \'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))'\n"
53
- printf " \n"
54
- printf " MinT-002.1\n"
55
- printf " miniscript-docker run \'$MINT_002_1 '\n"
56
+ printf "
57
+ \'$MINT_002_1 \'
58
+ "
56
59
# # 0
57
60
# # scriptlen=206
58
61
# # maxops=28
@@ -65,8 +68,12 @@ function help {
65
68
# # timelock_mix=no
66
69
# # miniscript=
67
70
# # thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:older(100),snu:older(200))
68
- printf " MinT-002.2\n"
69
- printf " miniscript-docker run \'$MINT_002_2 '\n"
71
+ printf " \n"
72
+ printf " MinT-002.2"
73
+ printf " \n"
74
+ printf "
75
+ \'$MINT_002_2 \'
76
+ "
70
77
# # 0
71
78
# # scriptlen=211
72
79
# # maxops=28
@@ -80,8 +87,11 @@ function help {
80
87
# # miniscript=
81
88
# # thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:after(1694563200),snu:after(1694563200))
82
89
printf " \n"
83
- printf " MinT-002.3\n"
84
- printf " miniscript-docker run \'$MINT_002_3 '\n"
90
+ printf " MinT-002.3"
91
+ printf " \n"
92
+ printf "
93
+ \'$MINT_002_3 \'
94
+ "
85
95
# # 0
86
96
# # scriptlen=211
87
97
# # maxops=28
@@ -96,7 +106,9 @@ function help {
96
106
# # thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:after(1694563200),snu:after(1694476800))
97
107
printf " \n"
98
108
printf " MinT-002.4\n"
99
- printf " miniscript-docker run \'$MINT_002_4 '\n"
109
+ printf "
110
+ \'$MINT_002_4 \'
111
+ "
100
112
printf " \n"
101
113
# # 0
102
114
# # scriptlen=209
@@ -111,69 +123,70 @@ function help {
111
123
# # miniscript=
112
124
# # thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:older(4194400),snu:older(4194500))
113
125
printf " \n"
114
-
115
126
printf " MinT-003\n"
116
- printf " miniscript-docker run \'$MINT_003 '\n"
127
+ printf " \n"
128
+ printf "
129
+ \'$MINT_003 \'
130
+ "
117
131
# # X
118
132
# # 647.0300000000
119
133
# # 420
120
134
# # or_i(and_v(v:thresh(2,pkh(M1),a:pkh(M2),a:pkh(M3)),after(1005)),and_v(v:thresh(2,pk(A1),s:pk(A2),s:pk(A3),sln:after(1004)),or_i(and_v(vc:or_i(pk_h(SA1),or_i(pk_h(SA2),pk_h(SA3))),after(1003)),thresh(2,pk(P1),s:pk(P2),s:pk(P3),sln:after(1002)))))
121
135
# # or(99@thresh(2,thresh(2,pk(A1),pk(A2),pk(A3),after(1004)),or(10@thresh(2,pk(P1),pk(P2),pk(P3),after(1002)),and(thresh(1,pk(SA1),pk(SA2),pk(SA3)),after(1003)))),and(thresh(2,pk(M1),pk(M2),pk(M3)),after(1005)))\n"
122
136
printf " \n"
123
-
124
137
printf " MinT-004\n"
125
- printf " miniscript-docker run \'$MINT_004 '\n"
138
+ printf " \n"
139
+ printf "
140
+ \'$MINT_004 \'
141
+ "
126
142
printf " \n"
127
143
128
144
# # X
129
145
# # 728.6930000000
130
146
# # 444
131
147
# # or_i(and_v(v:thresh(2,pkh(M1),a:pkh(M2),a:pkh(M3)),after(1005)),and_v(v:thresh(2,pk(P1),s:pk(P2),s:pk(P3),sun:after(1002),sun:after(1003)),and_v(or_c(pk(SA1),or_c(pk(SA3),v:pkh(SA2))),thresh(2,pk(A1),s:pk(A2),s:pk(A3),sln:after(1004)))))
132
148
# # or(99@thresh(3,thresh(2,pk(P1),pk(P2),pk(P3),after(1002),after(1003)),thresh(2,pk(A1),pk(A2),pk(A3),after(1004)),thresh(1,pk(SA1),pk(SA2),pk(SA3))),1@and(thresh(2,pk(M1),pk(M2),pk(M3)),after(1005)))
149
+ exit
150
+ }
151
+
152
+ function help {
153
+
154
+ printf " Usage:\n"
155
+ printf " \n"
156
+ printf " miniscript-docker\n"
157
+ printf " \n"
158
+ printf " miniscript-docker examples\n"
159
+ printf " \n"
160
+ printf " miniscript-docker help [-h --help]\n"
161
+ printf " miniscript-docker build [-b --build]\n"
162
+ printf " \n"
163
+ printf " miniscript-docker run <miniscript>"
164
+ printf " \n"
133
165
exit ;
134
166
}
135
167
136
168
function build {
137
169
138
- echo TAG=$TAG
139
- echo FORCE=$FORCE
140
- echo NOCACHE=$NOCACHE
141
- echo VERBOSE=$VERBOSE
142
170
[ " $NOCACHE " ] && docker build --no-cache -t $TAG . && exit ;
143
171
[ ! -z " $NOCACHE " ] && docker build $NOCACHE -t $TAG . && exit ;
144
172
145
173
}
146
174
147
- function make {
148
-
149
- echo TAG=$TAG
150
- echo FORCE=$FORCE
151
- echo NOCACHE=$NOCACHE
152
- echo VERBOSE=$VERBOSE
153
- # # remove on host - it may be a different OS
154
- rm ./miniscript || echo && \
155
- docker run --rm -v $PWD :/src $TAG sh -c " make miniscript" && \
156
- exit ;
157
-
158
- }
159
175
function run () {
160
176
161
- # # echo "\$1"=$1
162
- # # echo "\$2"=$2
163
- # # echo "\$3"=$3
164
-
165
- # # echo TAG=$TAG
166
- # # echo FORCE=$FORCE
167
- # # echo NOCACHE=$NOCACHE
168
- # # echo VERBOSE=$VERBOSE
169
- # # remove on host - it may be a different OS
170
- # # Usage:
171
- # # miniscript-docker run "thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100))"
172
- docker run --rm -v $PWD :/src $TAG sh -c " echo '$1 ' | ./miniscript" && \
177
+ docker run --rm -v $PWD :/src $TAG sh -c " echo '$1 ' | miniscript" && \
173
178
exit ;
174
179
175
180
}
176
-
181
+ function shell (){
182
+ docker \
183
+ run \
184
+ -t \
185
+ -i \
186
+ --rm \
187
+ -p 127.0.0.1:$PORT :8080/tcp \
188
+ -v ` pwd` :/src miniscript bash
189
+ }
177
190
# # argparse
178
191
# # position $1
179
192
# # echo "\${!#}=${!#}"
210
223
;;
211
224
run) run $2 $3 $4
212
225
;;
226
+ shell) shell
227
+ ;;
228
+ examples) examples
229
+ ;;
230
+ --examples) examples
231
+ ;;
232
+ -e) examples
233
+ ;;
213
234
--* ) echo " bad option $1 "
214
235
;;
215
236
* ) echo " argument $1 "
223
244
case " $2 " in
224
245
# # support docker-miniscript build -f
225
246
# # docker-miniscript -f build
247
+ verbose) VERBOSE=1; echo $VERBOSE
248
+ ;;
249
+ --verbose) VERBOSE=1; echo $VERBOSE
250
+ ;;
251
+ -v) VERBOSE=1; echo $VERBOSE
252
+ ;;
226
253
--force) FORCE=--force; # # echo FORCE=$FORCE
227
254
;;
228
255
-f) FORCE=--force; # # echo FORCE=$FORCE
239
266
;;
240
267
-m) make
241
268
;;
269
+ examples) examples
270
+ ;;
271
+ --examples) examples
272
+ ;;
273
+ -e) examaples
274
+ ;;
242
275
--* ) echo " bad option $1 "
243
276
;;
244
277
* ) echo " argument $1 "
245
278
;;
246
279
esac
247
280
shift
248
281
done
249
-
250
-
251
-
252
- # detect docker after argparse
253
- DOCKER=${DOCKER:- $(which docker)}
254
- [ -z " $DOCKER " ] && printf " 'docker' not in \$ PATH"
255
-
256
- [ " $1 " == " make" ] && \
257
- rm ./miniscript || echo && \
258
- $DOCKER run --rm -v $PWD :/src miniscript sh -c " make miniscript" && \
259
- exit ;
260
-
261
- [ ! -z " $DOCKER " ] && \
262
- $DOCKER \
263
- run \
264
- --rm \
265
- --volume " ` pwd` :/src" \
266
- miniscript \
267
- sh -c " echo '$1 $2 $3 $4 ' | ./miniscript"
268
- # "echo ' and(pk(A),or(pk(B),or(9@pk(C),older(1000))))' | ./miniscript"
282
+ help
0 commit comments