datamodel/tools/build

58 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
import typing as _typing
import sys as _sys
import os as _os
import argparse as _argparse
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)
main()