commit 1f7a1b31b3b277c6a85c003148a43c25997263b2 Author: Lukas Wurzinger Date: Fri May 30 22:10:22 2025 +0200 init diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..99507c0 --- /dev/null +++ b/flake.nix @@ -0,0 +1,10 @@ +{ + description = "A flake template"; + + outputs = _: { + templates.default = { + path = ./template; + description = "A general purpose flake"; + }; + }; +} diff --git a/template/.envrc b/template/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/template/.envrc @@ -0,0 +1 @@ +use flake diff --git a/template/flake.nix b/template/flake.nix new file mode 100644 index 0000000..464927d --- /dev/null +++ b/template/flake.nix @@ -0,0 +1,67 @@ +{ + # FIXME: Set the description. + description = ""; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + hooks.url = "github:cachix/git-hooks.nix"; + treefmt.url = "github:numtide/treefmt-nix"; + }; + + outputs = + { + self, + nixpkgs, + flake-parts, + hooks, + treefmt, + }@inputs: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + hooks.flakeModule + treefmt.flakeModule + ]; + + systems = nixpkgs.lib.systems.flakeExposed; + + perSystem = + { + config, + pkgs, + ... + }: + { + treefmt = { + projectRootFile = "flake.nix"; + + programs.nixfmt = { + enable = true; + package = pkgs.nixfmt-rfc-style; + }; + }; + + pre-commit.settings.hooks = { + treefmt.enable = true; + }; + + devShells.default = pkgs.mkShellNoCC { + packages = [ + # FIXME: Put packages here. + ]; + + shellHook = '' + ${config.pre-commit.installationScript} + ''; + }; + + # FIXME: Uncomment this if the flake should export a package. + # packages.default = pkgs.callPackage ./package.nix {}; + }; + + flake = { + # FIXME: Uncomment this if the flake should export a NixOS module. + # nixosModules.default = import ./module.nix self; + }; + }; +}