Merge remote-tracking branch 'devos/develop' into teutat3s-develop

This commit is contained in:
teutat3s 2021-07-28 12:04:39 +02:00
commit f66f600b9b
Signed by untrusted user: teutat3s
GPG key ID: 4FA1D3FA524F22C1
6 changed files with 164 additions and 211 deletions

View file

@ -22,6 +22,7 @@ Also, have a look at [_flake.nix_][toc]. If anything is not immediately
discoverable via "[`digga`][digga]'s [`mkFlake`][mk-flake], discoverable via "[`digga`][digga]'s [`mkFlake`][mk-flake],
please file a bug report. please file a bug report.
<<<<<<< HEAD
## Motivation ## Motivation
NixOS provides an amazing abstraction to manage our environment, but that new NixOS provides an amazing abstraction to manage our environment, but that new
power can sometimes bring feelings of overwhelm and confusion. Having a turing power can sometimes bring feelings of overwhelm and confusion. Having a turing
@ -34,6 +35,16 @@ ___The future is declarative! 🎉___
## Examples in the Wild ## Examples in the Wild
The author maintains his own branch, so you can take inspiration, direction, or The author maintains his own branch, so you can take inspiration, direction, or
make critical comments about the [code][please]. 😜 make critical comments about the [code][please]. 😜
=======
### Status: Beta
Although this project has already matured quite a bit, especially through
recent outfactoring of [`digga`][digga], a fair amount of api polishing is still
expected. There are unstable versions (0._x_._x_) to help users keep track
of changes and progress, and a [`develop`](https://github.com/divnix/devos/tree/develop) branch for the brave 😜
## In the Wild
* The original [authors][please]
>>>>>>> devos/develop
## Shoulders ## Shoulders
This work does not reinvent the wheel. It stands on the [shoulders of the This work does not reinvent the wheel. It stands on the [shoulders of the
@ -92,4 +103,3 @@ DevOS is licensed under the [MIT License][mit].
[nixpkgs]: https://github.com/NixOS/nixpkgs [nixpkgs]: https://github.com/NixOS/nixpkgs
[nvfetcher]: https://github.com/berberman/nvfetcher [nvfetcher]: https://github.com/berberman/nvfetcher
[please]: https://github.com/nrdxp/devos/tree/nrd [please]: https://github.com/nrdxp/devos/tree/nrd
[toc]: https://github.com/divnix/devos/blob/core/flake.nix

View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1620877075, "lastModified": 1626960455,
"narHash": "sha256-XvgTqtmQZHegu9UMDSR50gK5cHEM2gbnRH0qecmdN54=", "narHash": "sha256-N3+qOtsADo59UcG8PxqNMhT94wqTQ73k08gpy1dLaWU=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "e543aa7d68f222e1e771165da9e9a64b5bf7b3e3", "rev": "fb00f178b3a49a39cc964049075439b575d36d60",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -46,11 +46,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1626456025, "lastModified": 1627447597,
"narHash": "sha256-TrKfxVir+TilnqSNYokxJKx2ugEem7Khv4YmSwqj9JQ=", "narHash": "sha256-e7q4jCq7MPHTa0HKxX5fJS1JwZ33BN9WohWUy6sOOgA=",
"owner": "divnix", "owner": "divnix",
"repo": "bud", "repo": "bud",
"rev": "59c10c3879b11371944ab664462fe2e9366cfb44", "rev": "231fa20ed93944e5b484cb5d820c60c17f4dfc35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -59,38 +59,6 @@
"type": "github" "type": "github"
} }
}, },
"ci-agent": {
"inputs": {
"flake-compat": [
"digga",
"deploy",
"flake-compat"
],
"nix-darwin": [
"darwin"
],
"nixos-20_09": [
"nixos"
],
"nixos-unstable": [
"latest"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix"
},
"locked": {
"lastModified": 1626066948,
"narHash": "sha256-rBo4nCPyAHb1e/9ysYGH7tW1FV0N2XNvRcJR+g8gugA=",
"owner": "hercules-ci",
"repo": "hercules-ci-agent",
"rev": "7f3265cc42d5f364066c145939ee2812938b991c",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "hercules-ci-agent",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -116,9 +84,11 @@
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": [ "nixpkgs": [
"digga",
"nixpkgs" "nixpkgs"
], ],
"utils": [ "utils": [
"digga",
"flake-utils" "flake-utils"
] ]
}, },
@ -157,6 +127,7 @@
"deploy": "deploy", "deploy": "deploy",
"devshell": "devshell", "devshell": "devshell",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"flake-utils-plus": "flake-utils-plus",
"home-manager": [ "home-manager": [
"home" "home"
], ],
@ -166,20 +137,18 @@
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixpkgs": [ "nixpkgs": [
"nixos" "nixos"
], ]
"utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1626470112, "lastModified": 1627438622,
"narHash": "sha256-hC5I3A1HxfGi45avpYBf8zXi1hQkHYWgRgUM4sF9byI=", "narHash": "sha256-O+e35MsI/E07CleYSHfWUhaSYcl7Rg/kf0O+hUi7vto=",
"owner": "divnix", "owner": "divnix",
"repo": "digga", "repo": "digga",
"rev": "f25928ed0bf05ab20af5a8231d264ae01b42ab34", "rev": "0778eeeb665d4f922d7befe56be220c342406337",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "divnix", "owner": "divnix",
"ref": "develop",
"repo": "digga", "repo": "digga",
"type": "github" "type": "github"
} }
@ -215,13 +184,35 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils-plus": {
"inputs": {
"flake-utils": [
"digga",
"flake-utils"
]
},
"locked": {
"lastModified": 1627071952,
"narHash": "sha256-FhE0KOuI9Kl4eyGJXu4bh9fBP2hbxjnD1DlKHljCcYs=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "51a82925db31073bc4822c9b538a0a3ebf1134b2",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"ref": "staging",
"repo": "flake-utils-plus",
"type": "github"
}
},
"flake-utils_2": { "flake-utils_2": {
"locked": { "locked": {
"lastModified": 1619345332, "lastModified": 1623875721,
"narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -237,11 +228,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1624228557, "lastModified": 1627158444,
"narHash": "sha256-wwOqe73BsrXfRv1PhyXQFNC8iTET50KvE/HitdkRgxs=", "narHash": "sha256-+C0SqhyQQplhcmWl681ODGNWUng8Wp1yvC/MdI1Q7hY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "35a24648d155843a4d162de98c17b1afd5db51e4", "rev": "9c0abed5228d54aad120b4bc757b6f5935aeda1c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -253,12 +244,11 @@
}, },
"latest": { "latest": {
"locked": { "locked": {
"lastModified": 1626529037, "lastModified": 1626527571,
"narHash": "sha256-Q1vbk2fgE43JgjvTBdghZ70ParF2ek/jTn62ACkU8Fw=", "narHash": "sha256-+X2GhKfkuLUYs8wVQPUKZULX3OvaNn2KwrvhoxQk9SA=",
"owner": "NixOS", "path": "/nix/store/a7qndnxr415j8s2172g13xhs1ryn5rcs-source",
"repo": "nixpkgs", "rev": "0a96dbc8b6bd4874ef0f55ce30ec7bdf1cb09452",
"rev": "5f069e17541ac5cd240fced18687cef190080be3", "type": "path"
"type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
@ -268,7 +258,9 @@
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"latest" "digga",
"deploy",
"nixpkgs"
] ]
}, },
"locked": { "locked": {
@ -312,11 +304,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1620663773, "lastModified": 1626702694,
"narHash": "sha256-Nfc2g9xUCPYBFKE5O7OdrDpCVspwk64S8EbsDYoY38c=", "narHash": "sha256-YarKJzVh4De/EsMA3IYLbLzf4Qc5yH5mDcYNuYJqpP4=",
"owner": "dramforever", "owner": "dramforever",
"repo": "nix-dram", "repo": "nix-dram",
"rev": "86485e22621b17bcc4472889eedbd562498bb5a2", "rev": "b7cd3eba2567ccc662f288ca5bc46003d78f9dbb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -327,11 +319,11 @@
}, },
"nixos": { "nixos": {
"locked": { "locked": {
"lastModified": 1626527571, "lastModified": 1627460592,
"narHash": "sha256-+X2GhKfkuLUYs8wVQPUKZULX3OvaNn2KwrvhoxQk9SA=", "narHash": "sha256-jdJqJi9DSPiGOY9xlZSi0ufDJpS6ezvDdx8AQq5VuyI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0a96dbc8b6bd4874ef0f55ce30ec7bdf1cb09452", "rev": "382039c05a16827a7f0731183e862366b66b422f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -343,9 +335,11 @@
"nixos-generators": { "nixos-generators": {
"inputs": { "inputs": {
"nixlib": [ "nixlib": [
"digga",
"nixlib" "nixlib"
], ],
"nixpkgs": [ "nixpkgs": [
"digga",
"blank" "blank"
] ]
}, },
@ -365,11 +359,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1625333638, "lastModified": 1627365147,
"narHash": "sha256-M6J9RN60XJyv6nUfDFCwnz5aVjhe8+GJnV8Q9VpdQQQ=", "narHash": "sha256-weGn8tUd8VP+YFCqYZ8fOV8OPJxrZLtna8YJKri0Zfk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "41775780a0b6b32b3d32dcc32bb9bc6df809062d", "rev": "615e23579fec9bf0753fd72a8a447d9fb847c58f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -380,11 +374,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1620340338, "lastModified": 1626556499,
"narHash": "sha256-Op/4K0+Z9Sp5jtFH0s/zMM4H7VFZxrekcAmjQ6JpQ4w=", "narHash": "sha256-c2ueMT7fi/yvCNq3nGLEC2v5GklS7eHpB1240LRSW9Y=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "63586475587d7e0e078291ad4b49b6f6a6885100", "rev": "b59c06dc92f8d03660eb4155754d93a6c34cda83",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -416,7 +410,7 @@
], ],
"flake-utils": [ "flake-utils": [
"digga", "digga",
"utils", "flake-utils-plus",
"flake-utils" "flake-utils"
], ],
"nixpkgs": [ "nixpkgs": [
@ -424,11 +418,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1626443440, "lastModified": 1627459777,
"narHash": "sha256-9xDWqVcLxAiRC/g/JnSfsj+s/Ont0fZjczAH9pqqBdg=", "narHash": "sha256-WHEAMMGG4hCJHLsk1k6BeHXOdI+HtG8wxLghVDp7h9Y=",
"owner": "berberman", "owner": "berberman",
"repo": "nvfetcher", "repo": "nvfetcher",
"rev": "ba3366421ff66a06f4176780dff5e8373512bfba", "rev": "f8c69f30993d69996236d4f1720794684aa5838c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -437,22 +431,6 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks-nix": {
"flake": false,
"locked": {
"lastModified": 1622650193,
"narHash": "sha256-qSzUpJDv04ajS9FXoCq6NjVF3qOt9IiGIiGh0P8amyw=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "0398f0649e0a741660ac5e8216760bae5cc78579",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
@ -461,7 +439,6 @@
"blank" "blank"
], ],
"bud": "bud", "bud": "bud",
"ci-agent": "ci-agent",
"darwin": "darwin", "darwin": "darwin",
"deploy": [ "deploy": [
"digga", "digga",
@ -472,6 +449,10 @@
"digga", "digga",
"flake-utils" "flake-utils"
], ],
"flake-utils-plus": [
"digga",
"flake-utils-plus"
],
"home": "home", "home": "home",
"latest": "latest", "latest": "latest",
"naersk": "naersk_2", "naersk": "naersk_2",
@ -486,32 +467,7 @@
"nixos" "nixos"
], ],
"nur": "nur", "nur": "nur",
"nvfetcher": "nvfetcher", "nvfetcher": "nvfetcher"
"utils": [
"digga",
"utils"
]
}
},
"utils": {
"inputs": {
"flake-utils": [
"flake-utils"
]
},
"locked": {
"lastModified": 1626288344,
"narHash": "sha256-TioHDqWJkw37jjx4DVrH6LCzwrUfAqXbWl4rKR91fpA=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "5c6ee69f6957afc2fe22c094717d6d78516418b5",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"ref": "staging",
"repo": "flake-utils-plus",
"type": "github"
} }
} }
}, },

View file

@ -10,7 +10,7 @@
nixos.url = "nixpkgs/release-21.05"; nixos.url = "nixpkgs/release-21.05";
latest.url = "nixpkgs"; latest.url = "nixpkgs";
digga.url = "github:divnix/digga/develop"; digga.url = "github:divnix/digga";
digga.inputs.nixpkgs.follows = "nixos"; digga.inputs.nixpkgs.follows = "nixos";
digga.inputs.nixlib.follows = "nixos"; digga.inputs.nixlib.follows = "nixos";
digga.inputs.home-manager.follows = "home"; digga.inputs.home-manager.follows = "home";
@ -33,13 +33,7 @@
nvfetcher.url = "github:berberman/nvfetcher"; nvfetcher.url = "github:berberman/nvfetcher";
nvfetcher.inputs.nixpkgs.follows = "latest"; nvfetcher.inputs.nixpkgs.follows = "latest";
nvfetcher.inputs.flake-compat.follows = "digga/deploy/flake-compat"; nvfetcher.inputs.flake-compat.follows = "digga/deploy/flake-compat";
nvfetcher.inputs.flake-utils.follows = "digga/utils/flake-utils"; nvfetcher.inputs.flake-utils.follows = "digga/flake-utils-plus/flake-utils";
ci-agent.url = "github:hercules-ci/hercules-ci-agent";
ci-agent.inputs.nix-darwin.follows = "darwin";
ci-agent.inputs.nixos-20_09.follows = "nixos";
ci-agent.inputs.nixos-unstable.follows = "latest";
ci-agent.inputs.flake-compat.follows = "digga/deploy/flake-compat";
naersk.url = "github:nmattia/naersk"; naersk.url = "github:nmattia/naersk";
naersk.inputs.nixpkgs.follows = "latest"; naersk.inputs.nixpkgs.follows = "latest";
@ -51,7 +45,7 @@
nixpkgs.follows = "nixos"; nixpkgs.follows = "nixos";
nixlib.follows = "digga/nixlib"; nixlib.follows = "digga/nixlib";
blank.follows = "digga/blank"; blank.follows = "digga/blank";
utils.follows = "digga/utils"; flake-utils-plus.follows = "digga/flake-utils-plus";
flake-utils.follows = "digga/flake-utils"; flake-utils.follows = "digga/flake-utils";
# end ANTI CORRUPTION LAYER # end ANTI CORRUPTION LAYER
@ -64,7 +58,6 @@
, digga , digga
, bud , bud
, nixos , nixos
, ci-agent
, home , home
, nixos-hardware , nixos-hardware
, nur , nur
@ -74,9 +67,6 @@
, nix-dram , nix-dram
, ... , ...
} @ inputs: } @ inputs:
let
bud' = bud self; # rebind to access self.budModules
in
digga.lib.mkFlake digga.lib.mkFlake
{ {
inherit self inputs; inherit self inputs;
@ -85,7 +75,7 @@
channels = { channels = {
nixos = { nixos = {
imports = [ (digga.lib.importers.overlays ./overlays) ]; imports = [ (digga.lib.importOverlays ./overlays) ];
overlays = [ overlays = [
digga.overlays.patchedNix digga.overlays.patchedNix
nur.overlay nur.overlay
@ -114,25 +104,25 @@
hostDefaults = { hostDefaults = {
system = "x86_64-linux"; system = "x86_64-linux";
channelName = "nixos"; channelName = "nixos";
imports = [ (digga.lib.importers.modules ./modules) ]; imports = [ (digga.lib.importModules ./modules) ];
externalModules = [ externalModules = [
{ lib.our = self.lib; } { lib.our = self.lib; }
digga.nixosModules.bootstrapIso
digga.nixosModules.nixConfig digga.nixosModules.nixConfig
ci-agent.nixosModules.agent-profile
home.nixosModules.home-manager home.nixosModules.home-manager
agenix.nixosModules.age agenix.nixosModules.age
(bud.nixosModules.bud bud') bud.nixosModules.bud
]; ];
}; };
imports = [ (digga.lib.importers.hosts ./hosts) ]; imports = [ (digga.lib.importHosts ./hosts) ];
hosts = { hosts = {
/* set host specific properties here */ /* set host specific properties here */
NixOS = { }; NixOS = { };
}; };
importables = rec { importables = rec {
profiles = digga.lib.importers.rakeLeaves ./profiles // { profiles = digga.lib.rakeLeaves ./profiles // {
users = digga.lib.importers.rakeLeaves ./users; users = digga.lib.rakeLeaves ./users;
}; };
suites = with profiles; rec { suites = with profiles; rec {
base = [ core users.nixos users.root ]; base = [ core users.nixos users.root ];
@ -147,10 +137,10 @@
}; };
home = { home = {
imports = [ (digga.lib.importers.modules ./users/modules) ]; imports = [ (digga.lib.importModules ./users/modules) ];
externalModules = [ ]; externalModules = [ ];
importables = rec { importables = rec {
profiles = digga.lib.importers.rakeLeaves ./users/profiles; profiles = digga.lib.rakeLeaves ./users/profiles;
suites = with profiles; rec { suites = with profiles; rec {
base = [ direnv git ]; base = [ direnv git ];
}; };
@ -160,7 +150,7 @@
}; # digga.lib.importers.rakeLeaves ./users/hm; }; # digga.lib.importers.rakeLeaves ./users/hm;
}; };
devshell.modules = [ (import ./shell bud') ]; devshell = ./shell;
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;

View file

@ -1,11 +0,0 @@
{ lib, pkgs, self, config, modules, channel, ... }:
{
system.build = {
iso = (config.lib.digga.mkBuild
(config.lib.digga.modules.isoConfig {
inherit self;
fullHostConfig = config;
})
).config.system.build.isoImage;
};
}

View file

@ -1,63 +1,10 @@
bud: { self, inputs, ... }:
{ pkgs, extraModulesPath, ... }:
let
hooks = import ./hooks;
pkgWithCategory = category: package: { inherit package category; };
linter = pkgWithCategory "linter";
docs = pkgWithCategory "docs";
devos = pkgWithCategory "devos";
in
{ {
_file = toString ./.; externalModules = with inputs; [
bud.devshellModules.bud
imports = [ "${extraModulesPath}/git/hooks.nix" ]; ];
git = { inherit hooks; }; modules = [
./devos.nix
# tempfix: remove when merged https://github.com/numtide/devshell/pull/123
devshell.startup.load_profiles = pkgs.lib.mkForce (pkgs.lib.noDepEntry ''
# PATH is devshell's exorbitant privilige:
# fence against its pollution
_PATH=''${PATH}
# Load installed profiles
for file in "$DEVSHELL_DIR/etc/profile.d/"*.sh; do
# If that folder doesn't exist, bash loves to return the whole glob
[[ -f "$file" ]] && source "$file"
done
# Exert exorbitant privilige and leave no trace
export PATH=''${_PATH}
unset _PATH
'');
packages = with pkgs; [
git-crypt
]; ];
commands = with pkgs; [
(devos (bud { inherit pkgs; }))
(devos nixUnstable)
(devos agenix)
{
category = "devos";
name = pkgs.nvfetcher-bin.pname;
help = pkgs.nvfetcher-bin.meta.description;
command = "cd $DEVSHELL_ROOT/pkgs; ${pkgs.nvfetcher-bin}/bin/nvfetcher -c ./sources.toml --no-output $@; nixpkgs-fmt _sources/";
} }
(linter nixpkgs-fmt)
(linter editorconfig-checker)
# (docs python3Packages.grip) too many deps
(docs mdbook)
]
++ lib.optional
(pkgs ? deploy-rs)
(devos deploy-rs.deploy-rs)
++ lib.optional
(system != "i686-linux")
(devos cachix)
;
}

61
shell/devos.nix Normal file
View file

@ -0,0 +1,61 @@
{ pkgs, extraModulesPath, ... }:
let
hooks = import ./hooks;
pkgWithCategory = category: package: { inherit package category; };
linter = pkgWithCategory "linter";
docs = pkgWithCategory "docs";
devos = pkgWithCategory "devos";
in
{
_file = toString ./.;
imports = [ "${extraModulesPath}/git/hooks.nix" ];
git = { inherit hooks; };
# tempfix: remove when merged https://github.com/numtide/devshell/pull/123
devshell.startup.load_profiles = pkgs.lib.mkForce (pkgs.lib.noDepEntry ''
# PATH is devshell's exorbitant privilige:
# fence against its pollution
_PATH=''${PATH}
# Load installed profiles
for file in "$DEVSHELL_DIR/etc/profile.d/"*.sh; do
# If that folder doesn't exist, bash loves to return the whole glob
[[ -f "$file" ]] && source "$file"
done
# Exert exorbitant privilige and leave no trace
export PATH=''${_PATH}
unset _PATH
'');
packages = with pkgs; [
git-crypt
];
commands = with pkgs; [
(devos nixUnstable)
(devos agenix)
{
category = "devos";
name = pkgs.nvfetcher-bin.pname;
help = pkgs.nvfetcher-bin.meta.description;
command = "cd $DEVSHELL_ROOT/pkgs; ${pkgs.nvfetcher-bin}/bin/nvfetcher -c ./sources.toml --no-output $@; nixpkgs-fmt _sources/";
}
(linter nixpkgs-fmt)
(linter editorconfig-checker)
# (docs python3Packages.grip) too many deps
(docs mdbook)
]
++ lib.optional
(pkgs ? deploy-rs)
(devos deploy-rs.deploy-rs)
++ lib.optional
(system != "i686-linux")
(devos cachix)
;
}