{ pkgs, self, ... }: let inherit (builtins) attrValues; neovimShells = import ./neovim-shells {inherit pkgs self;}; bumpNpmDeps = pkgs.writeShellApplication { name = "bumpNpmDeps"; runtimeInputs = attrValues { inherit (pkgs) prefetch-npm-deps nodejs_latest ; }; text = '' # this command might fail but still updates the main lockfile npm update --package-lock-only || true hash="$(prefetch-npm-deps ./package-lock.json)" echo "$hash" if [[ -f ./default.nix ]]; then sed -i "s#npmDepsHash = .*#npmDepsHash = \"$hash\";#" ./default.nix fi ''; }; in { flake = pkgs.callPackage ./flake {}; default = self.devShells.${pkgs.system}.flake; netdaemon = pkgs.callPackage ./netdaemon {}; node = pkgs.callPackage ./node {inherit bumpNpmDeps;}; subtitles-dev = pkgs.callPackage ./subtitle-dev {inherit bumpNpmDeps;}; } // neovimShells