diff --git a/source/main.ts b/source/main.ts index bcbebef..b53d4ad 100644 --- a/source/main.ts +++ b/source/main.ts @@ -183,9 +183,9 @@ namespace _ivaldi process.stdout.write( arg_handler.generate_help( { - "programname": "lixer-event-reminder", - "description": "a telegram bot, which sends reminders about upcoming events", - "executable": "node build/event-reminder", + "programname": "ivaldi", + "description": "a collection of tools for building and deploying a software project", + "executable": "ivaldi", } ) ); @@ -198,19 +198,45 @@ namespace _ivaldi "name": data_raw["name"], "libs": (data_raw["libs"] ?? {}), "sources": data_raw["sources"], - }; - /** - * @todo outsource - */ - const conf = { + "target": ( + data_raw["target"] + ?? + "node" + ), "directories": { - "source": "source", - "libs": "libs", - "temp": "temp", - "build": "build", - "makefile": "/tmp", + "lib": ( + (data_raw["misc"] ?? {})["lib"] + ?? + "lib" + ), + "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) { default: { @@ -224,7 +250,7 @@ namespace _ivaldi const directory : string = lib_plankton.string.coin( "{{directory}}/plankton", { - "directory": conf.directories.libs, + "directory": data.directories.lib, } ); /** @@ -240,8 +266,9 @@ namespace _ivaldi ); await execute( lib_plankton.string.coin( - "ptk bundle node {{modules}}", + "ptk bundle {{target}}} {{modules}}", { + "target": data.target, "modules": lib.data.modules.join(" "), } ), @@ -272,13 +299,13 @@ namespace _ivaldi lib_plankton.string.coin( "rm -r -f {{directory}}", { - "directory": conf.directories.temp, + "directory": data.directories.temp, } ), lib_plankton.string.coin( "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( "{{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( "{{directory_libs}}/plankton/plankton.js", { - "directory_libs": conf.directories.libs, + "directory_libs": data.directories.lib, } ); const paths_sources : Array = ( @@ -311,7 +338,7 @@ namespace _ivaldi source => lib_plankton.string.coin( "{{directory}}/{{name}}", { - "directory": conf.directories.source, + "directory": data.directories.source, "name": source, } ) @@ -320,20 +347,20 @@ namespace _ivaldi const path_unlinked : string = lib_plankton.string.coin( "{{directory_temp}}/{{name}}-unlinked.js", { - "directory_temp": conf.directories.temp, + "directory_temp": data.directories.temp, "name": data.name, } ); const path_head : string = lib_plankton.string.coin( "{{directory_temp}}/head.js", { - "directory_temp": conf.directories.temp, + "directory_temp": data.directories.temp, } ); const path_result : string = lib_plankton.string.coin( "{{directory_build}}/{{name}}", { - "directory_build": conf.directories.build, + "directory_build": data.directories.build, "name": data.name, } ); @@ -381,7 +408,7 @@ namespace _ivaldi lib_plankton.string.coin( "{{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( "{{directory}}/ivaldi-makefile-{{name}}", { - "directory": conf.directories.makefile, + "directory": data.directories.makefile, "name": data.name, } ); diff --git a/source/types.ts b/source/types.ts index d24d869..bdc4d69 100644 --- a/source/types.ts +++ b/source/types.ts @@ -46,6 +46,17 @@ namespace _ivaldi name : string; libs : Array; sources : Array; + target : ("node" | "web"); + directories : { + lib : string; + source : string; + temp : string; + build : string; + makefile : string; + }; + commands : { + typescript_compile : string; + }; }; }