58 lines
1.1 KiB
Python
Executable file
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()
|