aboutsummaryrefslogtreecommitdiff
path: root/src/nix
diff options
context:
space:
mode:
authorTaeer Bar-Yam <taeer@bar-yam.me>2022-02-15 11:50:14 -0500
committerTaeer Bar-Yam <taeer@bar-yam.me>2022-02-15 11:50:14 -0500
commitf3a2940e70dea2c35dcae3fca019e94bf8758b4d (patch)
tree2146a8fb3ff60d4c6580e5a6a4687dd84b7013d5 /src/nix
parent5b809f9e0e0fe84304c2ae0f5f7b2d4db02565ad (diff)
add descriptive output when creating templates
this includes a `welcomeText` attribute which can be set in the template, as well as outputing which files were created.
Diffstat (limited to 'src/nix')
-rw-r--r--src/nix/flake-init.md8
-rw-r--r--src/nix/flake.cc6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/nix/flake-init.md b/src/nix/flake-init.md
index 890038016..c8bcee375 100644
--- a/src/nix/flake-init.md
+++ b/src/nix/flake-init.md
@@ -37,6 +37,10 @@ A flake can declare templates through its `templates` and
* `path`: The path of the directory to be copied.
+* `welcomeText`: A block of text to display when a user initializes a new flake
+ based on this template.
+
+
Here is an example:
```
@@ -45,6 +49,10 @@ outputs = { self }: {
templates.rust = {
path = ./rust;
description = "A simple Rust/Cargo project";
+ welcomeText = ''
+ You've created a simple Rust/Cargo template.
+ Visit https://www.rust-lang.org/ for more info.
+ '';
};
templates.defaultTemplate = self.templates.rust;
diff --git a/src/nix/flake.cc b/src/nix/flake.cc
index 4bc79820c..f5d34c10f 100644
--- a/src/nix/flake.cc
+++ b/src/nix/flake.cc
@@ -728,6 +728,7 @@ struct CmdFlakeInitCommon : virtual Args, EvalCommand
else
throw Error("file '%s' has unsupported type", from2);
files.push_back(to2);
+ notice("wrote: %s", to2);
}
};
@@ -738,6 +739,11 @@ struct CmdFlakeInitCommon : virtual Args, EvalCommand
for (auto & s : files) args.push_back(s);
runProgram("git", true, args);
}
+ auto welcomeText = cursor->maybeGetAttr("welcomeText");
+ if (welcomeText) {
+ notice("\n----------\n");
+ notice(welcomeText->getString());
+ }
}
};