about summary refs log tree commit diff
path: root/overlays
diff options
context:
space:
mode:
authorBrian Leung <leungbk@posteo.net>2023-05-30 21:08:06 -0700
committerBrian Leung <leungbk@posteo.net>2023-05-30 22:03:38 -0700
commite20a3891139758fd04ef1905c19e3e1fcc744179 (patch)
treeca59e60006f837290118f019e9d4f542e7df645a /overlays
parentf3de842d61a82311589af736888c0bd52e300615 (diff)
downloadnixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar.gz
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar.bz2
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar.lz
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar.xz
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.tar.zst
nixlib-e20a3891139758fd04ef1905c19e3e1fcc744179.zip
Account for nixpkgs checkouts lacking withTreeSitter attribute
Diffstat (limited to 'overlays')
-rw-r--r--overlays/emacs.nix58
1 files changed, 37 insertions, 21 deletions
diff --git a/overlays/emacs.nix b/overlays/emacs.nix
index 2d94bd97def5..f8316d3f8427 100644
--- a/overlays/emacs.nix
+++ b/overlays/emacs.nix
@@ -88,27 +88,43 @@ let
         )
       ]);
 
-  emacsGit = (super.lib.makeOverridable (mkGitEmacs "emacs-git" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; withTreeSitter = true; }).overrideAttrs (
-    oa: {
-      patches = oa.patches ++ [
-        # XXX: #318
-        ./bytecomp-revert.patch
-      ]; }
-  );
-
-  emacsPgtk = (super.lib.makeOverridable (mkGitEmacs "emacs-pgtk" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; withTreeSitter = true; withPgtk = true; }).overrideAttrs (
-    oa: {
-      patches = oa.patches ++ [
-        # XXX: #318
-        ./bytecomp-revert.patch
-      ]; }
-  );
-
-  emacsUnstable = super.lib.makeOverridable (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json) { withSQLite3 = true; withWebP = true; withTreeSitter = true; };
-
-  emacsUnstablePgtk = super.lib.makeOverridable (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json) { withSQLite3 = true; withWebP = true; withTreeSitter = true; withPgtk = true; };
-
-  emacsLsp = super.lib.makeOverridable (mkGitEmacs "emacs-lsp" ../repos/emacs/emacs-lsp.json) { withTreeSitter = false; };
+  emacsGit = let base = (super.lib.makeOverridable (mkGitEmacs "emacs-git" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; });
+                 # TODO: remove when we drop support for < 23.05
+                 maybeOverridden = if super.lib.hasAttr "treeSitter" base then base.override { withTreeSitter = true; } else base;
+             in
+               maybeOverridden.overrideAttrs (
+                 oa: {
+                   patches = oa.patches ++ [
+                     # XXX: #318
+                     ./bytecomp-revert.patch
+                   ]; }
+               );
+
+  emacsPgtk = let base = super.lib.makeOverridable (mkGitEmacs "emacs-pgtk" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; withPgtk = true; };
+                 # TODO: remove when we drop support for < 23.05
+                  maybeOverridden = if super.lib.hasAttr "treeSitter" base then base.override { withTreeSitter = true; } else base;
+              in maybeOverridden.overrideAttrs (
+                oa: {
+                  patches = oa.patches ++ [
+                    # XXX: #318
+                    ./bytecomp-revert.patch
+                  ]; }
+              );
+
+  emacsUnstable = let base = super.lib.makeOverridable (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json) { withSQLite3 = true; withWebP = true; };
+                      # TODO: remove when we drop support for < 23.05
+                      maybeOverridden = if super.lib.hasAttr "treeSitter" base then base.override { withTreeSitter = true; } else base;
+                      in maybeOverridden;
+
+  emacsUnstablePgtk = let base = super.lib.makeOverridable (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json) { withSQLite3 = true; withWebP = true; withPgtk = true; };
+                          # TODO: remove when we drop support for < 23.05
+                          maybeOverridden = if super.lib.hasAttr "treeSitter" base then base.override { withTreeSitter = true; } else base;
+                      in maybeOverridden;
+
+  emacsLsp = let base = super.lib.makeOverridable (mkGitEmacs "emacs-lsp" ../repos/emacs/emacs-lsp.json) { };
+                 # TODO: remove when we drop support for < 23.05
+                 maybeOverridden = if super.lib.hasAttr "treeSitter" base then base.override { withTreeSitter = false; } else base;
+                 in maybeOverridden;
 
 in
 {