From ad7692233860786321a44fe36f72c85fe9a52b35 Mon Sep 17 00:00:00 2001 From: derped Date: Fri, 27 Mar 2020 13:25:54 +0100 Subject: [PATCH] Move pkgsets folder into project root to conform with option naming. Add simple package filter to auto remove broken packages. --- fn.nix | 13 +++++++++++++ options/machine.nix | 4 ++-- pkgs/systemPackages.nix | 2 +- {pkgs/pkgsets => pkgsets}/base.nix | 0 {pkgs/pkgsets => pkgsets}/cpp.nix | 0 {pkgs/pkgsets => pkgsets}/dict.nix | 0 {pkgs/pkgsets => pkgsets}/emacs.nix | 4 ++-- {pkgs/pkgsets => pkgsets}/emacs/company.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/doom-modeline.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/doom-themes.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/elpy.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/fcitx.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/flycheck.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/flyspell.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/latex.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/lsp.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/magit.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/mu4e.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/nix-mode.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/org.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/powerline.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/rust.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/solarized-theme.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/transmission.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/web-mode.nix | 0 {pkgs/pkgsets => pkgsets}/emacs/yasnippet.nix | 0 {pkgs/pkgsets => pkgsets}/extra.nix | 0 {pkgs/pkgsets => pkgsets}/haskell-tools.nix | 0 {pkgs/pkgsets => pkgsets}/haskell.nix | 0 {pkgs/pkgsets => pkgsets}/java.nix | 0 {pkgs/pkgsets => pkgsets}/mail_utils.nix | 0 {pkgs/pkgsets => pkgsets}/python3.nix | 0 {pkgs/pkgsets => pkgsets}/rustpkgs.nix | 0 {pkgs/pkgsets => pkgsets}/server.nix | 0 {pkgs/pkgsets => pkgsets}/uniProgs.nix | 0 {pkgs/pkgsets => pkgsets}/xpkgs.nix | 0 36 files changed, 18 insertions(+), 5 deletions(-) rename {pkgs/pkgsets => pkgsets}/base.nix (100%) rename {pkgs/pkgsets => pkgsets}/cpp.nix (100%) rename {pkgs/pkgsets => pkgsets}/dict.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs.nix (98%) rename {pkgs/pkgsets => pkgsets}/emacs/company.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/doom-modeline.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/doom-themes.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/elpy.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/fcitx.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/flycheck.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/flyspell.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/latex.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/lsp.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/magit.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/mu4e.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/nix-mode.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/org.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/powerline.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/rust.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/solarized-theme.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/transmission.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/web-mode.nix (100%) rename {pkgs/pkgsets => pkgsets}/emacs/yasnippet.nix (100%) rename {pkgs/pkgsets => pkgsets}/extra.nix (100%) rename {pkgs/pkgsets => pkgsets}/haskell-tools.nix (100%) rename {pkgs/pkgsets => pkgsets}/haskell.nix (100%) rename {pkgs/pkgsets => pkgsets}/java.nix (100%) rename {pkgs/pkgsets => pkgsets}/mail_utils.nix (100%) rename {pkgs/pkgsets => pkgsets}/python3.nix (100%) rename {pkgs/pkgsets => pkgsets}/rustpkgs.nix (100%) rename {pkgs/pkgsets => pkgsets}/server.nix (100%) rename {pkgs/pkgsets => pkgsets}/uniProgs.nix (100%) rename {pkgs/pkgsets => pkgsets}/xpkgs.nix (100%) diff --git a/fn.nix b/fn.nix index bd0a071..3d57527 100644 --- a/fn.nix +++ b/fn.nix @@ -17,4 +17,17 @@ rec { lsf = p: (lst { p = p; }); lsd = p: (lst { p = p; t = "directory"; b = true; }); lsfRec = p: b: flatten ((map (np: lsfRec np b) (lsd p)) ++ (lst { p = p; b = b; })); + hasAttrs = aList: d: (map + (a: + (ifelse (isList a) + (hasAttrByPath a d) + (hasAttr a d))) + aList); + pkgFilter = l: (filter + (p: ( + ifelse (elem true (hasAttrs [["meta" "broken"]] p)) + (warn "Package ${p.name} is marked as broken." false) + true) + ) + l); } diff --git a/options/machine.nix b/options/machine.nix index 322cde6..598cd4e 100644 --- a/options/machine.nix +++ b/options/machine.nix @@ -7,14 +7,14 @@ let cfg = config.machine; fn = import (toString ../fn.nix) { inherit lib; }; metapkgs = let - pPath = (toString ./../pkgs/pkgsets); + pPath = (toString ../pkgsets); in (lists.forEach (fn.lsfRec pPath true) (v: replaceStrings [ "${pPath}/" "/" ".nix" ] [ "" "::" "" ] v)); pkgOption = pname: { name = pname; value = rec { pkgwrap = mkOption { type = with types; oneOf [ package (listOf package) ]; - default = cfg.pkgsets."${pname}".pkgs; + default = (fn.pkgFilter cfg.pkgsets."${pname}".pkgs); description = '' Package Wrapper for packages using a wrapper function (like python, emacs, haskell, ...) ''; diff --git a/pkgs/systemPackages.nix b/pkgs/systemPackages.nix index 0930b4f..53801cb 100644 --- a/pkgs/systemPackages.nix +++ b/pkgs/systemPackages.nix @@ -5,7 +5,7 @@ with lib; let cfg = config.machine; fn = import (toString ../fn.nix) { inherit lib; }; - pkgsets = map (v: (toString ./.) + "/pkgsets/${v}") (fn.lsf (toString ./pkgsets)); + pkgsets = map (v: (toString ../.) + "/pkgsets/${v}") (fn.lsf (toString ../pkgsets)); in { imports = pkgsets; diff --git a/pkgs/pkgsets/base.nix b/pkgsets/base.nix similarity index 100% rename from pkgs/pkgsets/base.nix rename to pkgsets/base.nix diff --git a/pkgs/pkgsets/cpp.nix b/pkgsets/cpp.nix similarity index 100% rename from pkgs/pkgsets/cpp.nix rename to pkgsets/cpp.nix diff --git a/pkgs/pkgsets/dict.nix b/pkgsets/dict.nix similarity index 100% rename from pkgs/pkgsets/dict.nix rename to pkgsets/dict.nix diff --git a/pkgs/pkgsets/emacs.nix b/pkgsets/emacs.nix similarity index 98% rename from pkgs/pkgsets/emacs.nix rename to pkgsets/emacs.nix index 4422fc6..2e86b6d 100644 --- a/pkgs/pkgsets/emacs.nix +++ b/pkgsets/emacs.nix @@ -4,7 +4,7 @@ with lib; let gitpkgs = import /nixpkgs {}; - fn = import (toString ../../fn.nix) { inherit lib; }; + fn = import (toString ../fn.nix) { inherit lib; }; modefiles = fn.lst { p = (toString ./emacs); b = true; }; in rec { # nixpkgs.overlays = [ @@ -13,7 +13,7 @@ in rec { # })) # ]; imports = [ - ../../options/emacs-init.nix + ../options/emacs-init.nix ] ++ modefiles; programs.emacs.init = { diff --git a/pkgs/pkgsets/emacs/company.nix b/pkgsets/emacs/company.nix similarity index 100% rename from pkgs/pkgsets/emacs/company.nix rename to pkgsets/emacs/company.nix diff --git a/pkgs/pkgsets/emacs/doom-modeline.nix b/pkgsets/emacs/doom-modeline.nix similarity index 100% rename from pkgs/pkgsets/emacs/doom-modeline.nix rename to pkgsets/emacs/doom-modeline.nix diff --git a/pkgs/pkgsets/emacs/doom-themes.nix b/pkgsets/emacs/doom-themes.nix similarity index 100% rename from pkgs/pkgsets/emacs/doom-themes.nix rename to pkgsets/emacs/doom-themes.nix diff --git a/pkgs/pkgsets/emacs/elpy.nix b/pkgsets/emacs/elpy.nix similarity index 100% rename from pkgs/pkgsets/emacs/elpy.nix rename to pkgsets/emacs/elpy.nix diff --git a/pkgs/pkgsets/emacs/fcitx.nix b/pkgsets/emacs/fcitx.nix similarity index 100% rename from pkgs/pkgsets/emacs/fcitx.nix rename to pkgsets/emacs/fcitx.nix diff --git a/pkgs/pkgsets/emacs/flycheck.nix b/pkgsets/emacs/flycheck.nix similarity index 100% rename from pkgs/pkgsets/emacs/flycheck.nix rename to pkgsets/emacs/flycheck.nix diff --git a/pkgs/pkgsets/emacs/flyspell.nix b/pkgsets/emacs/flyspell.nix similarity index 100% rename from pkgs/pkgsets/emacs/flyspell.nix rename to pkgsets/emacs/flyspell.nix diff --git a/pkgs/pkgsets/emacs/latex.nix b/pkgsets/emacs/latex.nix similarity index 100% rename from pkgs/pkgsets/emacs/latex.nix rename to pkgsets/emacs/latex.nix diff --git a/pkgs/pkgsets/emacs/lsp.nix b/pkgsets/emacs/lsp.nix similarity index 100% rename from pkgs/pkgsets/emacs/lsp.nix rename to pkgsets/emacs/lsp.nix diff --git a/pkgs/pkgsets/emacs/magit.nix b/pkgsets/emacs/magit.nix similarity index 100% rename from pkgs/pkgsets/emacs/magit.nix rename to pkgsets/emacs/magit.nix diff --git a/pkgs/pkgsets/emacs/mu4e.nix b/pkgsets/emacs/mu4e.nix similarity index 100% rename from pkgs/pkgsets/emacs/mu4e.nix rename to pkgsets/emacs/mu4e.nix diff --git a/pkgs/pkgsets/emacs/nix-mode.nix b/pkgsets/emacs/nix-mode.nix similarity index 100% rename from pkgs/pkgsets/emacs/nix-mode.nix rename to pkgsets/emacs/nix-mode.nix diff --git a/pkgs/pkgsets/emacs/org.nix b/pkgsets/emacs/org.nix similarity index 100% rename from pkgs/pkgsets/emacs/org.nix rename to pkgsets/emacs/org.nix diff --git a/pkgs/pkgsets/emacs/powerline.nix b/pkgsets/emacs/powerline.nix similarity index 100% rename from pkgs/pkgsets/emacs/powerline.nix rename to pkgsets/emacs/powerline.nix diff --git a/pkgs/pkgsets/emacs/rust.nix b/pkgsets/emacs/rust.nix similarity index 100% rename from pkgs/pkgsets/emacs/rust.nix rename to pkgsets/emacs/rust.nix diff --git a/pkgs/pkgsets/emacs/solarized-theme.nix b/pkgsets/emacs/solarized-theme.nix similarity index 100% rename from pkgs/pkgsets/emacs/solarized-theme.nix rename to pkgsets/emacs/solarized-theme.nix diff --git a/pkgs/pkgsets/emacs/transmission.nix b/pkgsets/emacs/transmission.nix similarity index 100% rename from pkgs/pkgsets/emacs/transmission.nix rename to pkgsets/emacs/transmission.nix diff --git a/pkgs/pkgsets/emacs/web-mode.nix b/pkgsets/emacs/web-mode.nix similarity index 100% rename from pkgs/pkgsets/emacs/web-mode.nix rename to pkgsets/emacs/web-mode.nix diff --git a/pkgs/pkgsets/emacs/yasnippet.nix b/pkgsets/emacs/yasnippet.nix similarity index 100% rename from pkgs/pkgsets/emacs/yasnippet.nix rename to pkgsets/emacs/yasnippet.nix diff --git a/pkgs/pkgsets/extra.nix b/pkgsets/extra.nix similarity index 100% rename from pkgs/pkgsets/extra.nix rename to pkgsets/extra.nix diff --git a/pkgs/pkgsets/haskell-tools.nix b/pkgsets/haskell-tools.nix similarity index 100% rename from pkgs/pkgsets/haskell-tools.nix rename to pkgsets/haskell-tools.nix diff --git a/pkgs/pkgsets/haskell.nix b/pkgsets/haskell.nix similarity index 100% rename from pkgs/pkgsets/haskell.nix rename to pkgsets/haskell.nix diff --git a/pkgs/pkgsets/java.nix b/pkgsets/java.nix similarity index 100% rename from pkgs/pkgsets/java.nix rename to pkgsets/java.nix diff --git a/pkgs/pkgsets/mail_utils.nix b/pkgsets/mail_utils.nix similarity index 100% rename from pkgs/pkgsets/mail_utils.nix rename to pkgsets/mail_utils.nix diff --git a/pkgs/pkgsets/python3.nix b/pkgsets/python3.nix similarity index 100% rename from pkgs/pkgsets/python3.nix rename to pkgsets/python3.nix diff --git a/pkgs/pkgsets/rustpkgs.nix b/pkgsets/rustpkgs.nix similarity index 100% rename from pkgs/pkgsets/rustpkgs.nix rename to pkgsets/rustpkgs.nix diff --git a/pkgs/pkgsets/server.nix b/pkgsets/server.nix similarity index 100% rename from pkgs/pkgsets/server.nix rename to pkgsets/server.nix diff --git a/pkgs/pkgsets/uniProgs.nix b/pkgsets/uniProgs.nix similarity index 100% rename from pkgs/pkgsets/uniProgs.nix rename to pkgsets/uniProgs.nix diff --git a/pkgs/pkgsets/xpkgs.nix b/pkgsets/xpkgs.nix similarity index 100% rename from pkgs/pkgsets/xpkgs.nix rename to pkgsets/xpkgs.nix