diff options
author | Taeer Bar-Yam <taeer@bar-yam.me> | 2022-02-15 11:50:14 -0500 |
---|---|---|
committer | Taeer Bar-Yam <taeer@bar-yam.me> | 2022-02-15 11:50:14 -0500 |
commit | f3a2940e70dea2c35dcae3fca019e94bf8758b4d (patch) | |
tree | 2146a8fb3ff60d4c6580e5a6a4687dd84b7013d5 /src/nix | |
parent | 5b809f9e0e0fe84304c2ae0f5f7b2d4db02565ad (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.md | 8 | ||||
-rw-r--r-- | src/nix/flake.cc | 6 |
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()); + } } }; |