aboutsummaryrefslogtreecommitdiffstats
path: root/build/shell/flake.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-06-11 09:48:15 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-06-11 09:48:15 +0200
commit4f2b735472eb921b5edd91c502e0a47d5e4d0cd2 (patch)
tree35aed5a8f6b650431071e7447565ab6795b790a6 /build/shell/flake.nix
parentfix(cog.toml): Update to the newest state (diff)
downloadflake-templates-4f2b735472eb921b5edd91c502e0a47d5e4d0cd2.zip
chore(build): Update
Diffstat (limited to '')
-rw-r--r--build/shell/flake.nix118
1 files changed, 118 insertions, 0 deletions
diff --git a/build/shell/flake.nix b/build/shell/flake.nix
new file mode 100644
index 0000000..56aa9d1
--- /dev/null
+++ b/build/shell/flake.nix
@@ -0,0 +1,118 @@
+{
+ description = "%INIT_DESCRIPTION";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+
+ treefmt-nix = {
+ url = "github:numtide/treefmt-nix";
+ inputs = {
+ nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ flake_version_update = {
+ url = "git+https://codeberg.org/soispha/flake_version_update.git";
+ inputs = {
+ systems.follows = "systems";
+ nixpkgs.follows = "nixpkgs";
+ flake-utils.follows = "flake-utils";
+ };
+ };
+ shell_library = {
+ url = "git+https://codeberg.org/soispha/shell_library.git";
+ inputs = {
+ flake-utils.follows = "flake-utils";
+ nixpkgs.follows = "nixpkgs";
+ systems.follows = "systems";
+ flake_version_update.follows = "flake_version_update";
+ };
+ };
+
+ # inputs for following
+ systems = {
+ url = "github:nix-systems/x86_64-linux"; # only evaluate for this system
+ };
+ flake-compat = {
+ url = "github:edolstra/flake-compat";
+ flake = false;
+ };
+ flake-utils = {
+ url = "github:numtide/flake-utils";
+ inputs = {
+ systems.follows = "systems";
+ };
+ };
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ flake-utils,
+ treefmt-nix,
+ flake_version_update,
+ shell_library,
+ ...
+ }:
+ flake-utils.lib.eachDefaultSystem (system: let
+ pkgs = nixpkgs.legacyPackages."${system}";
+
+ treefmtEval = import ./treefmt.nix {inherit treefmt-nix pkgs;};
+
+ # This version is set automatically on `cog bump --auto`;
+ version = "v%INIT_APPLICATION_VERSION"; # GUIDING VERSION STRING
+ pname = "%INIT_APPLICATION_NAME";
+
+ build = shell_library.lib.${system}.writeShellScript {
+ inherit version;
+ name = pname;
+
+ src = ./src/main.sh;
+ dependencies = with pkgs; [dash];
+
+ replacementStrings = null;
+ generateCompletions = false;
+ keepPath = false;
+ wrap = true;
+ };
+
+ manual = pkgs.stdenv.mkDerivation {
+ name = "${pname}-manual";
+ inherit version;
+
+ src = ./docs;
+ nativeBuildInputs = with pkgs; [pandoc];
+
+ buildPhase = ''
+ mkdir --parents $out/docs;
+
+ pandoc "./${pname}.1.md" -s -t man > $out/docs/${pname}.1
+ '';
+
+ installPhase = ''
+ install -D $out/docs/${pname}.1 $out/share/man/man1/${pname};
+ '';
+ };
+ in {
+ packages.default = pkgs.symlinkJoin {
+ name = pname;
+
+ paths = [manual build];
+ };
+
+ checks = {
+ inherit build;
+ formatting = treefmtEval.config.build.check self;
+ };
+ formatter = treefmtEval.config.build.wrapper;
+
+ devShells.default = pkgs.mkShell {
+ packages = with pkgs; [
+ cocogitto
+ flake_version_update.packages."${system}".default
+
+ licensure
+ ];
+ };
+ });
+}