diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f7676fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.AppImage +squashfs_root diff --git a/flake.nix b/flake.nix index 147f8da..4ce672a 100644 --- a/flake.nix +++ b/flake.nix @@ -6,6 +6,18 @@ }; outputs = inputs @ {self, nixpkgs, flake-utils, ...}: flake-utils.lib.eachDefaultSystem (system: let + recursiveMerge = attrList: let + f = attrPath: + builtins.zipAttrsWith (n: values: + if pkgs.lib.tail values == [] + then pkgs.lib.head values + else if pkgs.lib.all pkgs.lib.isList values + then pkgs.lib.unique (pkgs.lib.concatLists values) + else if pkgs.lib.all pkgs.lib.isAttrs values + then f (attrPath ++ [n]) values + else pkgs.lib.last values); + in + f [] attrList; pkgs = import nixpkgs { inherit system; }; @@ -23,28 +35,17 @@ ripgrep ]; full-dependancies = with pkgs; [ + go gopls - ] ++ dependancies; + ]; neovim-with-deps = recursiveMerge [ pkgs.neovim-unwrapped { buildInputs = dependancies; } ]; neovim-with-full-deps = recursiveMerge [ pkgs.neovim-unwrapped - { buildInputs = dependancies; } + { buildInputs = dependancies ++ full-dependancies; } ]; - recursiveMerge = attrList: let - f = attrPath: - builtins.zipAttrsWith (n: values: - if pkgs.lib.tail values == [] - then pkgs.lib.head values - else if pkgs.lib.all pkgs.lib.isList values - then pkgs.lib.unique (pkgs.lib.concatLists values) - else if pkgs.lib.all pkgs.lib.isAttrs values - then f (attrPath ++ [n]) values - else pkgs.lib.last values); - in - f [] attrList; in rec { packages.full = pkgs.wrapNeovim neovim-with-full-deps (base // { configure = {