{ description = "My dotfiles"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; devenv-root = { url = "file+file:///dev/null"; flake = false; }; devenv.url = "github:cachix/devenv"; }; nixConfig = { extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; extra-substituters = "https://devenv.cachix.org"; }; outputs = { nixpkgs, flake-parts, ... } @ inputs: flake-parts.lib.mkFlake {inherit inputs;} { imports = [ inputs.devenv.flakeModule ]; systems = nixpkgs.lib.systems.flakeExposed; perSystem = { pkgs, self', lib, ... }: { packages = lib.packagesFromDirectoryRecursive { inherit (pkgs) callPackage; directory = ./packages; }; devenv.shells.default = { devenv.root = let devenvRootFileContent = builtins.readFile inputs.devenv-root.outPath; in pkgs.lib.mkIf (devenvRootFileContent != "") devenvRootFileContent; env.PLOW_FROM = "./home"; env.PLOW_CACHE = "./.plowcache"; imports = [ ./devenv.nix ]; packages = [ self'.packages.plow self'.packages.codeinit ]; }; }; }; }