diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2022-02-17 21:06:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-17 21:06:10 +0100 |
commit | a768e85e2fb3b0500829bc42cdc137176481bedf (patch) | |
tree | 5bf20ac060ae6e8d1800890b30aedd7eca2530d6 /src | |
parent | b24d541c34b6c85761c63c19ae847816aecd364b (diff) | |
parent | f56dd3a36bc8a325028588fd5500cbc33fa48a26 (diff) |
Merge pull request #6103 from Radvendii/welcomeText
add descriptive output when creating templates
Diffstat (limited to 'src')
-rw-r--r-- | src/nix/flake-init.md | 14 | ||||
-rw-r--r-- | src/nix/flake.cc | 7 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/nix/flake-init.md b/src/nix/flake-init.md index 890038016..c13b22248 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 markdown text to display when a user initializes a + new flake based on this template. + + Here is an example: ``` @@ -45,6 +49,16 @@ outputs = { self }: { templates.rust = { path = ./rust; description = "A simple Rust/Cargo project"; + welcomeText = '' + # Simple Rust/Cargo Template + ## Intended usage + The intended usage of this flake is... + + ## More info + - [Rust language](https://www.rust-lang.org/) + - [Rust on the NixOS Wiki](https://nixos.wiki/wiki/Rust) + - ... + ''; }; templates.defaultTemplate = self.templates.rust; diff --git a/src/nix/flake.cc b/src/nix/flake.cc index 3effce2c1..cd85bcea6 100644 --- a/src/nix/flake.cc +++ b/src/nix/flake.cc @@ -13,6 +13,7 @@ #include "registry.hh" #include "json.hh" #include "eval-cache.hh" +#include "markdown.hh" #include <nlohmann/json.hpp> #include <queue> @@ -731,6 +732,7 @@ struct CmdFlakeInitCommon : virtual Args, EvalCommand else throw Error("file '%s' has unsupported type", from2); files.push_back(to2); + notice("wrote: %s", to2); } }; @@ -741,6 +743,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"); + notice(renderMarkdownToTerminal(welcomeText->getString())); + } } }; |