Add `docker-run.sh` with bindmount to save output. Fix a bug and refactor arg parsing for `grab_shielded_data.py`.

This commit is contained in:
nathan wilcox 2020-05-02 23:27:34 +00:00
parent 6bdf2d1a17
commit 96578ae248
4 changed files with 32 additions and 10 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
output/

View File

@ -1,18 +1,29 @@
import os
import sys
from slickrpc.rpc import Proxy
import csv
import progressbar
if not (3 <= len(sys.argv) <= 5):
raise SystemExit(f'Usage: {sys.argv[0]} RPCUSER RPCPASSWORD [ HOST [ PORT ] ]\n\nFound: {sys.argv}')
usage = f'Usage: {sys.argv[0]} OUTPUTDIR RPCUSER RPCPASSWORD [ HOST [ PORT ] ]\n\nFound: {sys.argv}'
args = sys.argv[1:]
user, passwd = sys.argv[1:3]
host = '127.0.0.1'
if len(sys.argv) > 3:
host = sys.argv[3]
port = '8232'
if len(sys.argv) > 4:
port = sys.argv[4]
def pop_arg(name, default=None):
try:
return args.pop(0)
except IndexError:
if default is None:
raise SystemExit(f'Missing {name} argument.\n\n{usage}')
else:
return default
os.chdir(pop_arg('OUTPUTDIR'))
user = pop_arg('RPCUSER')
passwd = pop_arg('RPCPASSWORD')
host = pop_arg('HOST', default='127.0.0.1')
port = pop_arg('PORT', default='8232')
if len(args) > 0:
raise SystemExit(f'Unexpected args.\n\n{usage}')
rpc_url = f'http://{user}:{passwd}@{host}:{port}/'
print(f'RPC URL: {rpc_url!r}')

View File

@ -14,4 +14,4 @@ RUN pip3 install slick-bitcoinrpc && pip3 install progressbar2
RUN mkdir -p /project/{src,output}
COPY . /project/src
ENTRYPOINT ["python3", "/project/src/4467-sprout-usage/grab_shielded_data.py"]
ENTRYPOINT ["python3", "/project/src/4467-sprout-usage/grab_shielded_data.py", "/project/output"]

10
docker-run.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -efuo pipefail
REPODIR="$(dirname "$(readlink -f "$0")")"
OUTDIR="${REPODIR}/output"
[ -d "$OUTDIR" ] || mkdir "$OUTDIR"
time docker build -t zcash-graphs "$REPODIR"
time docker run -v "${OUTDIR}:/project/output" zcash-graphs "$@"