[mod] tools:build
This commit is contained in:
parent
327b000bf8
commit
31df9cfbaf
1 changed files with 54 additions and 32 deletions
86
tools/build
86
tools/build
|
@ -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 ""
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue