[mod] tools:build

This commit is contained in:
roydfalk 2024-06-07 08:05:48 +02:00
parent 327b000bf8
commit 31df9cfbaf

View file

@ -1,36 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env python3
## functions import typing as _typing
import sys as _sys
function syntaxerror import os as _os
{ import argparse as _argparse
echo "SYNTAX: build <revision> [<format>]" > /dev/stderr
exit 1
}
## consts def main():
## consts
dir_source = "source"
## args
argument_parser = _argparse.ArgumentParser()
argument_parser.add_argument(
"-r",
"--revision",
type = str,
dest = "revision",
default = None,
)
argument_parser.add_argument(
"-f",
"--format",
type = str,
dest = "format",
default = "sqlite",
)
args = argument_parser.parse_args()
## vars
revisions = sorted(
list(
map(
lambda name: name.split(".sindri.json")[0],
_os.listdir(_os.path.join(dir_source, "structure"))
)
)
)
revision = (args.revision or revisions[-1])
## exec
_sys.stderr.write("-- data\n")
_os.system(
"cat %s/structure/%s.sindri.json | tools/sindri/sindri --format='database:%s'"
% (
dir_source,
revision,
args.format,
)
)
_sys.stderr.write("-- meta\n")
_sys.stdout.write("DROP TABLE IF EXISTS _meta;\n")
_sys.stdout.write("CREATE TABLE _meta(revision VARCHAR(15) NOT NULL);\n")
_sys.stdout.write("INSERT INTO _meta(revision) VALUES ('%s');\n" % revision)
dir_source="source" main()
dir_build="build"
## args
if [ $# -ge 1 ] ; then revision=$1 && shift ; else syntaxerror ; fi
if [ $# -ge 1 ] ; then format=$1 && shift ; else format="sqlite" ; fi
## exec
mkdir -p ${dir_build}
echo "-- data"
cat ${dir_source}/structure/${revision}.sindri.json | tools/sindri/sindri -f database:${format}
echo ""
echo "-- meta"
echo "DROP TABLE IF EXISTS _meta;"
echo "CREATE TABLE _meta(revision VARCHAR(15) NOT NULL);"
echo "INSERT INTO _meta(revision) VALUES ('${revision}');"
echo ""