aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2022-02-17 21:06:10 +0100
committerGitHub <noreply@github.com>2022-02-17 21:06:10 +0100
commita768e85e2fb3b0500829bc42cdc137176481bedf (patch)
tree5bf20ac060ae6e8d1800890b30aedd7eca2530d6 /src
parentb24d541c34b6c85761c63c19ae847816aecd364b (diff)
parentf56dd3a36bc8a325028588fd5500cbc33fa48a26 (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.md14
-rw-r--r--src/nix/flake.cc7
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()));
+ }
}
};