Skip to content

Commit 0feeb01

Browse files
committed
miniscript-docker: examples
1 parent 536cae1 commit 0feeb01

File tree

1 file changed

+96
-82
lines changed

1 file changed

+96
-82
lines changed

miniscript-docker

Lines changed: 96 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env bash
22

3+
PORT=${PORT:80}
34
VERBOSE=${VERBOSE:- }
45

56
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
2223
## MINT_004
2324
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)))"
2425

26+
function examples(){
2527

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"
3241
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"
3643
printf "\n"
37-
printf " miniscript-docker run <miniscript>"
44+
printf "
45+
\'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))\'
46+
"
3847
printf "\n"
48+
printf "MinT-001"
3949
printf "\n"
40-
printf "Examples:\n"
50+
printf "
51+
\'and(pk(A),or(pk(B),or(9@pk(C),older(1000))))\'
52+
"
4153
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"
4555
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+
"
5659
## 0
5760
## scriptlen=206
5861
## maxops=28
@@ -65,8 +68,12 @@ function help {
6568
## timelock_mix=no
6669
## miniscript=
6770
## 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+
"
7077
## 0
7178
## scriptlen=211
7279
## maxops=28
@@ -80,8 +87,11 @@ function help {
8087
## miniscript=
8188
## thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:after(1694563200),snu:after(1694563200))
8289
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+
"
8595
## 0
8696
## scriptlen=211
8797
## maxops=28
@@ -96,7 +106,9 @@ function help {
96106
## thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:after(1694563200),snu:after(1694476800))
97107
printf "\n"
98108
printf "MinT-002.4\n"
99-
printf " miniscript-docker run \'$MINT_002_4'\n"
109+
printf "
110+
\'$MINT_002_4\'
111+
"
100112
printf "\n"
101113
## 0
102114
## scriptlen=209
@@ -111,69 +123,70 @@ function help {
111123
## miniscript=
112124
## thresh(3,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),s:pk(XPUB4),s:pk(XPUB5),snu:older(4194400),snu:older(4194500))
113125
printf "\n"
114-
115126
printf "MinT-003\n"
116-
printf " miniscript-docker run \'$MINT_003'\n"
127+
printf "\n"
128+
printf "
129+
\'$MINT_003\'
130+
"
117131
## X
118132
## 647.0300000000
119133
## 420
120134
## 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)))))
121135
## 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"
122136
printf "\n"
123-
124137
printf "MinT-004\n"
125-
printf " miniscript-docker run \'$MINT_004'\n"
138+
printf "\n"
139+
printf "
140+
\'$MINT_004\'
141+
"
126142
printf "\n"
127143

128144
## X
129145
## 728.6930000000
130146
## 444
131147
## 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)))))
132148
## 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"
133165
exit;
134166
}
135167

136168
function build {
137169

138-
echo TAG=$TAG
139-
echo FORCE=$FORCE
140-
echo NOCACHE=$NOCACHE
141-
echo VERBOSE=$VERBOSE
142170
[ "$NOCACHE" ] && docker build --no-cache -t $TAG . && exit;
143171
[ ! -z "$NOCACHE" ] && docker build $NOCACHE -t $TAG . && exit;
144172

145173
}
146174

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-
}
159175
function run () {
160176

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" && \
173178
exit;
174179

175180
}
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+
}
177190
## argparse
178191
## position $1
179192
## echo "\${!#}=${!#}"
@@ -210,6 +223,14 @@ do
210223
;;
211224
run) run $2 $3 $4
212225
;;
226+
shell) shell
227+
;;
228+
examples) examples
229+
;;
230+
--examples) examples
231+
;;
232+
-e) examples
233+
;;
213234
--*) echo "bad option $1"
214235
;;
215236
*) echo "argument $1"
@@ -223,6 +244,12 @@ do
223244
case "$2" in
224245
## support docker-miniscript build -f
225246
## 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+
;;
226253
--force) FORCE=--force; ## echo FORCE=$FORCE
227254
;;
228255
-f) FORCE=--force; ## echo FORCE=$FORCE
@@ -239,30 +266,17 @@ do
239266
;;
240267
-m) make
241268
;;
269+
examples) examples
270+
;;
271+
--examples) examples
272+
;;
273+
-e) examaples
274+
;;
242275
--*) echo "bad option $1"
243276
;;
244277
*) echo "argument $1"
245278
;;
246279
esac
247280
shift
248281
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

Comments
 (0)