Skip to content

Commit

Permalink
add descriptive output when creating templates
Browse files Browse the repository at this point in the history
this includes a `welcomeText` attribute which can be set in the
template, as well as outputing which files were created.
  • Loading branch information
Radvendii committed Feb 15, 2022
1 parent 5b809f9 commit f3a2940
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/nix/flake-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

```
Expand All @@ -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;
Expand Down
6 changes: 6 additions & 0 deletions src/nix/flake.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
};

Expand All @@ -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());
}
}
};

Expand Down

0 comments on commit f3a2940

Please sign in to comment.