This commit is contained in:
fenris 2025-07-08 15:06:16 +02:00
parent 3e2722252c
commit 0c4e6ff649
2 changed files with 64 additions and 26 deletions

View file

@ -183,9 +183,9 @@ namespace _ivaldi
process.stdout.write( process.stdout.write(
arg_handler.generate_help( arg_handler.generate_help(
{ {
"programname": "lixer-event-reminder", "programname": "ivaldi",
"description": "a telegram bot, which sends reminders about upcoming events", "description": "a collection of tools for building and deploying a software project",
"executable": "node build/event-reminder", "executable": "ivaldi",
} }
) )
); );
@ -198,19 +198,45 @@ namespace _ivaldi
"name": data_raw["name"], "name": data_raw["name"],
"libs": (data_raw["libs"] ?? {}), "libs": (data_raw["libs"] ?? {}),
"sources": data_raw["sources"], "sources": data_raw["sources"],
}; "target": (
/** data_raw["target"]
* @todo outsource ??
*/ "node"
const conf = { ),
"directories": { "directories": {
"source": "source", "lib": (
"libs": "libs", (data_raw["misc"] ?? {})["lib"]
"temp": "temp", ??
"build": "build", "lib"
"makefile": "/tmp", ),
"source": (
(data_raw["misc"] ?? {})["source"]
??
"source"
),
"temp": (
(data_raw["misc"] ?? {})["temp"]
??
lib_plankton.string.coin("/tmp/_{{name}}", {"name": data_raw["name"]})
),
"build": (
(data_raw["misc"] ?? {})["build"]
??
lib_plankton.string.coin("/tmp/{{name}}", {"name": data_raw["name"]})
),
"makefile": (
(data_raw["misc"] ?? {})["makefile"]
??
"/tmp"
),
},
"commands": {
"typescript_compile": (
(data_raw["commands"] ?? {})["typescript_compile"]
??
"tsc"
),
}, },
"command_tsc": "tsc",
}; };
switch (args.action) { switch (args.action) {
default: { default: {
@ -224,7 +250,7 @@ namespace _ivaldi
const directory : string = lib_plankton.string.coin( const directory : string = lib_plankton.string.coin(
"{{directory}}/plankton", "{{directory}}/plankton",
{ {
"directory": conf.directories.libs, "directory": data.directories.lib,
} }
); );
/** /**
@ -240,8 +266,9 @@ namespace _ivaldi
); );
await execute( await execute(
lib_plankton.string.coin( lib_plankton.string.coin(
"ptk bundle node {{modules}}", "ptk bundle {{target}}} {{modules}}",
{ {
"target": data.target,
"modules": lib.data.modules.join(" "), "modules": lib.data.modules.join(" "),
} }
), ),
@ -272,13 +299,13 @@ namespace _ivaldi
lib_plankton.string.coin( lib_plankton.string.coin(
"rm -r -f {{directory}}", "rm -r -f {{directory}}",
{ {
"directory": conf.directories.temp, "directory": data.directories.temp,
} }
), ),
lib_plankton.string.coin( lib_plankton.string.coin(
"rm -r -f {{directory}}", "rm -r -f {{directory}}",
{ {
"directory": conf.directories.build, "directory": data.directories.build,
} }
), ),
]; ];
@ -296,13 +323,13 @@ namespace _ivaldi
const path_plankton_declaration : string = lib_plankton.string.coin( const path_plankton_declaration : string = lib_plankton.string.coin(
"{{directory_libs}}/plankton/plankton.d.ts", "{{directory_libs}}/plankton/plankton.d.ts",
{ {
"directory_libs": conf.directories.libs, "directory_libs": data.directories.lib,
} }
); );
const path_plankton_implementation : string = lib_plankton.string.coin( const path_plankton_implementation : string = lib_plankton.string.coin(
"{{directory_libs}}/plankton/plankton.js", "{{directory_libs}}/plankton/plankton.js",
{ {
"directory_libs": conf.directories.libs, "directory_libs": data.directories.lib,
} }
); );
const paths_sources : Array<string> = ( const paths_sources : Array<string> = (
@ -311,7 +338,7 @@ namespace _ivaldi
source => lib_plankton.string.coin( source => lib_plankton.string.coin(
"{{directory}}/{{name}}", "{{directory}}/{{name}}",
{ {
"directory": conf.directories.source, "directory": data.directories.source,
"name": source, "name": source,
} }
) )
@ -320,20 +347,20 @@ namespace _ivaldi
const path_unlinked : string = lib_plankton.string.coin( const path_unlinked : string = lib_plankton.string.coin(
"{{directory_temp}}/{{name}}-unlinked.js", "{{directory_temp}}/{{name}}-unlinked.js",
{ {
"directory_temp": conf.directories.temp, "directory_temp": data.directories.temp,
"name": data.name, "name": data.name,
} }
); );
const path_head : string = lib_plankton.string.coin( const path_head : string = lib_plankton.string.coin(
"{{directory_temp}}/head.js", "{{directory_temp}}/head.js",
{ {
"directory_temp": conf.directories.temp, "directory_temp": data.directories.temp,
} }
); );
const path_result : string = lib_plankton.string.coin( const path_result : string = lib_plankton.string.coin(
"{{directory_build}}/{{name}}", "{{directory_build}}/{{name}}",
{ {
"directory_build": conf.directories.build, "directory_build": data.directories.build,
"name": data.name, "name": data.name,
} }
); );
@ -381,7 +408,7 @@ namespace _ivaldi
lib_plankton.string.coin( lib_plankton.string.coin(
"{{command}} $^ --lib es2020,dom --target es6 --outFile $@", "{{command}} $^ --lib es2020,dom --target es6 --outFile $@",
{ {
"command": conf.command_tsc, "command": data.commands.typescript_compile,
} }
), ),
], ],
@ -475,7 +502,7 @@ namespace _ivaldi
const makefile_path : string = lib_plankton.string.coin( const makefile_path : string = lib_plankton.string.coin(
"{{directory}}/ivaldi-makefile-{{name}}", "{{directory}}/ivaldi-makefile-{{name}}",
{ {
"directory": conf.directories.makefile, "directory": data.directories.makefile,
"name": data.name, "name": data.name,
} }
); );

View file

@ -46,6 +46,17 @@ namespace _ivaldi
name : string; name : string;
libs : Array<type_lib>; libs : Array<type_lib>;
sources : Array<string>; sources : Array<string>;
target : ("node" | "web");
directories : {
lib : string;
source : string;
temp : string;
build : string;
makefile : string;
};
commands : {
typescript_compile : string;
};
}; };
} }