From 781218e171e9773b499174a22fa446b055e68dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Wed, 24 Apr 2024 08:36:51 +0200 Subject: [PATCH] [int] --- .../r1.sindri.json} | 0 source/structure/r2.sindri.json | 98 +++++++++++++++++++ tools/build | 34 ++++++- tools/sindri/sindri | 2 +- 4 files changed, 130 insertions(+), 4 deletions(-) rename source/{espe.sindri.json => structure/r1.sindri.json} (100%) create mode 100644 source/structure/r2.sindri.json diff --git a/source/espe.sindri.json b/source/structure/r1.sindri.json similarity index 100% rename from source/espe.sindri.json rename to source/structure/r1.sindri.json diff --git a/source/structure/r2.sindri.json b/source/structure/r2.sindri.json new file mode 100644 index 0000000..73e2853 --- /dev/null +++ b/source/structure/r2.sindri.json @@ -0,0 +1,98 @@ +{ + "domains": [ + { + "name": "member_core", + }, + { + "name": "member_extras", + }, + { + "name": "members", + "key_field": { + "name": "id" + }, + "data_fields": [ + { + "name": "membership_number", + "type": "string_short", + "nullable": false + }, + { + "name": "enabled", + "type": "boolean", + "nullable": false + }, + { + "name": "name_login", + "type": "string_short", + "nullable": true + }, + { + "name": "password_image", + "type": "string_medium", + "nullable": true + }, + { + "name": "name_real_value", + "type": "string_medium", + "nullable": false + }, + { + "name": "name_real_extension", + "type": "string_short", + "nullable": true + }, + { + "name": "name_display", + "type": "string_medium", + "nullable": true + }, + { + "name": "salutation", + "type": "string_short", + "nullable": true + }, + { + "name": "email_address_private_value", + "type": "string_short", + "nullable": true + }, + { + "name": "email_address_numberbased_use", + "type": "boolean", + "nullable": false + }, + { + "name": "email_address_namebased_use", + "type": "boolean", + "nullable": false + }, + { + "name": "email_redirect_to_private", + "type": "boolean", + "nullable": false + } + ], + "constraints": [ + { + "kind": "unique", + "parameters": { + "fields": ["membership_number"] + } + }, + { + "kind": "unique", + "parameters": { + "fields": ["name_real_value","name_real_extension"] + } + }, + { + "kind": "unique", + "parameters": { + "fields": ["name_login"] + } + } + ] + } + ] +} diff --git a/tools/build b/tools/build index 5876b2a..1ad4124 100755 --- a/tools/build +++ b/tools/build @@ -1,8 +1,36 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash + +## functions + +function syntaxerror +{ + echo "SYNTAX: build []" > /dev/stderr + exit 1 +} + + +## consts dir_source="source" dir_build="build" -mkdir -p ${dir_build} -cat ${dir_source}/espe.sindri.json | tools/sindri/sindri $@ # -f database:sqlite +## 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 "" diff --git a/tools/sindri/sindri b/tools/sindri/sindri index 7fb36e9..f21bdba 100755 --- a/tools/sindri/sindri +++ b/tools/sindri/sindri @@ -5978,7 +5978,7 @@ var _sindri; /** */ _sindri.add_output(_sindri.enum_realm.database, "mysql", { - "render": (x) => Promise.resolve(_sindri.outputs.backend.typescript.render(x)), + "render": (x) => Promise.resolve(_sindri.outputs.database.mysql.render(x)), }); var _sindri; (function (_sindri) {