diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-03-31 23:43:36 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-04-01 00:00:06 +0200 |
commit | 669d74fe556b06ff4c95df2d9c16b922a69807f2 (patch) | |
tree | 87ec271cf23a0c21ca3e1336a827998a25819dc9 | |
parent | refactor({python,markdown}): Also move them to the templates diretory (diff) | |
download | flake-templates-669d74fe556b06ff4c95df2d9c16b922a69807f2.tar.gz flake-templates-669d74fe556b06ff4c95df2d9c16b922a69807f2.zip |
refactor(flake): Move some nix code out of flake.nix
-rw-r--r-- | flake.nix | 61 | ||||
-rw-r--r-- | templates.nix | 52 |
2 files changed, 68 insertions, 45 deletions
diff --git a/flake.nix b/flake.nix index 5a85b1e..ba19638 100644 --- a/flake.nix +++ b/flake.nix @@ -14,66 +14,37 @@ systems = { url = "github:nix-systems/x86_64-linux"; # only evaluate for this system }; + treefmt-nix = { + url = "github:numtide/treefmt-nix"; + inputs = { + nixpkgs.follows = "nixpkgs"; + }; + }; }; outputs = { + self, nixpkgs, flake-utils, + treefmt-nix, ... - }: + }: let + templates = import ./templates.nix {inherit (nixpkgs) lib;}; + in flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages."${system}"; + treefmtEval = import ./treefmt.nix {inherit treefmt-nix pkgs;}; in { devShells.default = pkgs.mkShell { packages = with pkgs; [ - nil - alejandra - statix - ltex-ls cocogitto ]; }; + + checks.formatting = treefmtEval.config.build.check self; + formatter = treefmtEval.config.build.wrapper; }) - // { - templates = { - # a b c d e f g h i j k l m n o p q r s t u v w x y z - awk = { - path = ./awk; - description = "An Awk project"; - welcomeText = "Please customize the text in the flake.nix and LICENSE.spdx files; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg`"; - }; - c = { - path = ./c; - description = "A C project"; - welcomeText = "Please customize the text in the flake.nix, LICENSE.spdx files and the Makefile BIN_NAME variable; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg`"; - }; - latex = { - path = ./latex; - description = "A LaTeX project"; - welcomeText = "Please customize the text in the flake.nix and LICENSE.spdx files; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg` and look at `lpm`"; - }; - markdown = { - path = ./markdown; - description = "A Markdown project"; - welcomeText = "Please customize the text in the flake.nix and LICENSE.spdx files; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg`"; - }; - python = { - path = ./python; - description = "A Python project"; - welcomeText = "Please customize the text in the flake.nix, LICENSE.spdx and setup.cfg files; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg`"; - }; - rust = { - path = ./rust; - description = "A Rust/Crane project"; - welcomeText = "Please customize the text in the flake.nix and LICENSE.spdx files; Look at the TODO marks.\n Also run `git init`, `cargo init` and `cog install-hook commit-msg`"; - }; - shell = { - path = ./shell; - description = "A Shell project"; - welcomeText = "Please customize the text in the flake.nix and LICENSE.spdx files; Look at the TODO marks.\n Also run `git init` and `cog install-hook commit-msg`"; - }; - }; - }; + // {inherit templates;}; } # vim: ts=2 diff --git a/templates.nix b/templates.nix new file mode 100644 index 0000000..be7449d --- /dev/null +++ b/templates.nix @@ -0,0 +1,52 @@ +{lib}: let + mkTemplate = name: welcomeText: { + inherit welcomeText; + path = ./templates/${name}; + description = let + first_char_of_name = + builtins.elemAt (lib.strings.stringToCharacters name) 0; + a_or_an = + if builtins.elem first_char_of_name ["a" "e" "i" "o" "u"] + then "An" + else "A"; + in "${a_or_an} ${name} project"; + }; +in { + # a b c d e f g h i j k l m n o p q r s t u v w x y z + awk = mkTemplate "awk" '' + **Grep** for the TODO marks and change them accordingly! + Also run `git init`. + ''; + + c = mkTemplate "c" '' + **Grep** for the TODO marks and change them accordingly! + Also run `git init`. + ''; + + latex = mkTemplate "latex" '' + **Grep** for the TODO marks and change them accordingly! + Also run `git init`. + Please take a look at `lpm`. + ''; + + # Currently unmaintained + # markdown = mkTemplate "markdown" '' + # **Grep** for the TODO marks and change them accordingly! + # Also run `git init`. + # ''; + # + # python = mkTemplate "python" '' + # **Grep** for the TODO marks and change them accordingly! + # Also run `git init`. + # ''; + + rust = mkTemplate "rust" '' + **Grep** for the TODO marks and change them accordingly! + Also run `git init`. + ''; + + shell = mkTemplate "shell" '' + **Grep** for the TODO marks and change them accordingly! + Also run `git init`. + ''; +} |