diff options
author | Jasper Ras <jras@hostnet.nl> | 2025-03-20 11:07:49 +0100 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2025-03-20 11:07:49 +0100 |
commit | 80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 (patch) | |
tree | 93e28e85ab70052aa6f577998ec7dc1f413b40c0 /3 Resources/Nix/Flake.md | |
parent | 9642cd7ae24f0ba79ce5647c709b35ae8f06a285 (diff) |
vault backup: 2025-03-20 11:07:48
Diffstat (limited to '3 Resources/Nix/Flake.md')
-rw-r--r-- | 3 Resources/Nix/Flake.md | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/3 Resources/Nix/Flake.md b/3 Resources/Nix/Flake.md index 754556f..d191989 100644 --- a/3 Resources/Nix/Flake.md +++ b/3 Resources/Nix/Flake.md @@ -18,5 +18,67 @@ In flakes dependencies have to be specified explicitly and MUST be locked to spe Output of a Flake is an arbitrary [[Zettelkast/Index/Nix]] value such as a package, [[NixOS]] module or library function. Commands `nix build` and `nix shell` will build the output `packages.<system>.default` unless we specify another output, for example: `nix shell .#checks.aarch64-linux.build`. + +**Inputs** +``` +{ + inputs = { + # GitHub repository as the data source, specifying the master branch. + # This is the most common input format. + nixpkgs.url = "github:Mic92/nixpkgs/master"; + # Git URL, applicable to any Git repository using the https/ssh protocol. + git-example.url = "git+https://git.somehost.tld/user/path?ref=branch"; + # Git URL by tag, applicable to any Git repository using the https/ssh protocol. + git-example-tag.url = "git+https://git.somehost.tld/user/path?tag=x.y.x"; + # Github URL by pull request. + git-pr.url = "github:NixOS/nixpkgs?ref=pull/349351/head"; + # Git URL with submodules, applicable to any Git repository using the https/ssh protocol. + git-example-submodule.url = "git+https://git.somehost.tld/user/path?submodules=1"; + # Archive File URL, needed in case your input use LFS. + # Regular git input doesn't support LFS yet. + git-example-lfs.url = "https://codeberg.org/solver-orgz/treedome/archive/master.tar.gz"; + # Similar to fetching a Git repository, but using the ssh protocol + # with key authentication. Also uses the shallow=1 parameter + # to avoid copying the .git directory. + ssh-git-example.url = "git+ssh://git@github.com/ryan4yin/nix-secrets.git?shallow=1"; + # It's also possible to directly depend on a local Git repository. + git-directory-example.url = "git+file:/path/to/repo?shallow=1"; + # Using the `dir` parameter to specify a subdirectory. + nixpkgs.url = "github:foo/bar?dir=shu"; + # Local folder (if using an absolute path, the 'path:' prefix can be omitted). + directory-example.url = "path:/path/to/repo"; + + # If the data source is not a flake, set flake=false. + # `flake=false` is usually used to include additional source code, + # configuration files, etc. + # In Nix code, you can directly reference files within + # it using "${inputs.bar}/xxx/xxx" notation. + # For example, import "${inputs.bar}/xxx/xxx.nix" to import a specific nix file, + # or use "${inputs.bar}/xx/xx" as a path parameter for certain options. + bar = { + url = "github:foo/bar/branch"; + flake = false; + }; + + sops-nix = { + url = "github:Mic92/sops-nix"; + # `follows` is the inheritance syntax within inputs. + # Here, it ensures that sops-nix's `inputs.nixpkgs` aligns with + # the current flake's inputs.nixpkgs, + # avoiding inconsistencies in the dependency's nixpkgs version. + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # Lock the flake to a specific commit. + nix-doom-emacs = { + url = "github:vlaci/nix-doom-emacs?rev=238b18d7b2c8239f676358634bfb32693d3706f3"; + flake = false; + }; + }; + + outputs = { self, ... }@inputs: { ... }; +} +``` + --- [Flakes Wiki](https://nixos.wiki/wiki/Flakes)
\ No newline at end of file |