Skip to content

Commit 6ccf234

Browse files
committed
miniscript-docker: run
miniscript-docker miniscript-docker run "thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100))" ${!#}=thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100)) $1=thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100)) $2= $3= TAG=miniscript FORCE= NOCACHE= VERBOSE= 0 scriptlen=121 maxops=15 type=B safe=yes nonmal=yes dissat=yes input=- output=1 timelock_mix=no miniscript=thresh(2,pk(XPUB1),s:pk(XPUB2),s:pk(XPUB3),snl:older(100))
1 parent 4e82203 commit 6ccf234

1 file changed

Lines changed: 155 additions & 0 deletions

File tree

miniscript-docker

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
#!/usr/bin/env bash
2+
3+
VERBOSE=${VERBOSE:- }
4+
5+
FORCE=${FORCE:- }
6+
NOCACHE=${NOCACHE:- } ## default rebuild without --no-cache
7+
TAG=${TAG:-miniscript}
8+
9+
function help {
10+
11+
printf "Usage:\n"
12+
printf "\n"
13+
printf "miniscript-docker\n"
14+
printf "miniscript-docker [-v --verbose]\n"
15+
printf "\n"
16+
printf "miniscript-docker help [-h --help]\n"
17+
printf "miniscript-docker make [-m --make]\n"
18+
printf "miniscript-docker build [-b --build]\n"
19+
printf "Usage:\n"
20+
printf "Usage:\n"
21+
22+
exit;
23+
}
24+
25+
function build {
26+
27+
echo TAG=$TAG
28+
echo FORCE=$FORCE
29+
echo NOCACHE=$NOCACHE
30+
echo VERBOSE=$VERBOSE
31+
[ "$NOCACHE" ] && docker build --no-cache -t $TAG . && exit;
32+
[ ! -z "$NOCACHE" ] && docker build $NOCACHE -t $TAG . && exit;
33+
34+
}
35+
36+
function make {
37+
38+
echo TAG=$TAG
39+
echo FORCE=$FORCE
40+
echo NOCACHE=$NOCACHE
41+
echo VERBOSE=$VERBOSE
42+
## remove on host - it may be a different OS
43+
rm ./miniscript || echo && \
44+
docker run --rm -v $PWD:/src $TAG sh -c "make miniscript" && \
45+
exit;
46+
47+
}
48+
function run () {
49+
50+
echo "\$1"=$1
51+
echo "\$2"=$2
52+
echo "\$3"=$3
53+
54+
echo TAG=$TAG
55+
echo FORCE=$FORCE
56+
echo NOCACHE=$NOCACHE
57+
echo VERBOSE=$VERBOSE
58+
## remove on host - it may be a different OS
59+
docker run --rm -v $PWD:/src $TAG sh -c "echo '$1' | ./miniscript" && \
60+
exit;
61+
62+
}
63+
64+
## argparse
65+
## position $1
66+
echo "\${!#}=${!#}"
67+
while test $# -gt 0
68+
do
69+
case "$1" in
70+
verbose) VERBOSE=1; echo $VERBOSE
71+
;;
72+
--verbose) VERBOSE=1; echo $VERBOSE
73+
;;
74+
-v) VERBOSE=1; echo $VERBOSE
75+
;;
76+
help) help;
77+
;;
78+
--help) help;
79+
;;
80+
-h) help;
81+
;;
82+
--force) FORCE=--force; ## echo FORCE=$FORCE
83+
;;
84+
-f) FORCE=--force; ## echo FORCE=$FORCE
85+
;;
86+
build) build
87+
;;
88+
--build) build
89+
;;
90+
-b) build
91+
;;
92+
make) make
93+
;;
94+
--make) make
95+
;;
96+
-m) make
97+
;;
98+
run) run $2 $3 $4
99+
;;
100+
--*) echo "bad option $1"
101+
;;
102+
*) echo "argument $1"
103+
;;
104+
esac
105+
shift
106+
done
107+
## position $2
108+
while test $# -gt 1
109+
do
110+
case "$2" in
111+
## support docker-miniscript build -f
112+
## docker-miniscript -f build
113+
--force) FORCE=--force; ## echo FORCE=$FORCE
114+
;;
115+
-f) FORCE=--force; ## echo FORCE=$FORCE
116+
;;
117+
build) build
118+
;;
119+
--build) build
120+
;;
121+
-b) build
122+
;;
123+
make) make
124+
;;
125+
--make) make
126+
;;
127+
-m) make
128+
;;
129+
--*) echo "bad option $1"
130+
;;
131+
*) echo "argument $1"
132+
;;
133+
esac
134+
shift
135+
done
136+
137+
138+
139+
# detect docker after argparse
140+
DOCKER=${DOCKER:-$(which docker)}
141+
[ -z "$DOCKER" ] && printf "'docker' not in \$PATH"
142+
143+
[ "$1" == "make" ] && \
144+
rm ./miniscript || echo && \
145+
$DOCKER run --rm -v $PWD:/src miniscript sh -c "make miniscript" && \
146+
exit;
147+
148+
[ ! -z "$DOCKER" ] && \
149+
$DOCKER \
150+
run \
151+
--rm \
152+
--volume "`pwd`:/src" \
153+
miniscript \
154+
sh -c "echo '$1 $2 $3 $4' | ./miniscript"
155+
#"echo ' and(pk(A),or(pk(B),or(9@pk(C),older(1000))))' | ./miniscript"

0 commit comments

Comments
 (0)