aboutsummaryrefslogtreecommitdiff
path: root/src/create.lua
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2026-04-20 14:47:58 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2026-04-20 14:47:58 +0200
commit96e11c169cde65194c1136e6b40c1bbea35c813a (patch)
tree29abfee5f3e8f37a53ae4f674b926f497827d963 /src/create.lua
parent0686b40f979f4607b3fd8cca21c463e98f617666 (diff)
create cli
Diffstat (limited to 'src/create.lua')
-rw-r--r--src/create.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/create.lua b/src/create.lua
new file mode 100644
index 0000000..19ba7e8
--- /dev/null
+++ b/src/create.lua
@@ -0,0 +1,23 @@
+return function()
+ local args = require('arg') {
+ strict = false,
+ { name = "target" },
+ {
+ name = "template",
+ description = "template name or path to build.lua",
+ kind = "property",
+ required = true,
+ },
+ }
+
+ local path = manager.get(args.template) or Path:new(args.template)
+
+ if not path:exists() then
+ error('template does not exist.')
+ end
+
+ local builder = Builder:from_template(path)
+
+ local instance = builder:build(args)
+ instance:save_to(args.target)
+end