summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2018-09-12 07:51:48 +0100
committerJörg Thalheim <joerg@thalheim.io>2018-09-12 07:51:48 +0100
commitc4a621d4a60e350b5cf0f73db6d2f5500ee361c8 (patch)
tree8fb00d848b41015e91913ca8c577c8995e4e89d2 /pkgs/misc
parentac415ca68e1ff86ea52a9ca53ca451067070a315 (diff)
downloadnixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar.gz
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar.bz2
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar.lz
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar.xz
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.tar.zst
nixlib-c4a621d4a60e350b5cf0f73db6d2f5500ee361c8.zip
vimPlugins: run update script in empty environment
Diffstat (limited to 'pkgs/misc')
-rwxr-xr-xpkgs/misc/vim-plugins/update.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/pkgs/misc/vim-plugins/update.py b/pkgs/misc/vim-plugins/update.py
index 210f68d7d599..8128c12bce68 100755
--- a/pkgs/misc/vim-plugins/update.py
+++ b/pkgs/misc/vim-plugins/update.py
@@ -20,8 +20,9 @@ import xml.etree.ElementTree as ET
 from datetime import datetime
 from multiprocessing.dummy import Pool
 from pathlib import Path
-from typing import Dict, List, Optional, Tuple, Union
+from typing import Dict, List, Optional, Tuple, Union, Any
 from urllib.parse import urljoin, urlparse
+from tempfile import NamedTemporaryFile
 
 ATOM_ENTRY = "{http://www.w3.org/2005/Atom}entry"
 ATOM_LINK = "{http://www.w3.org/2005/Atom}link"
@@ -110,7 +111,7 @@ class Plugin:
         return copy
 
 
-GET_PLUGINS = """(with import <nixpkgs> {};
+GET_PLUGINS = """(with import <localpkgs> {};
 let
   hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value;
   getChecksum = name: value:
@@ -123,8 +124,24 @@ let
 in lib.filterAttrs (n: v: v != null) checksums)"""
 
 
+class CleanEnvironment(object):
+    def __enter__(self) -> None:
+        self.old_environ = os.environ.copy()
+        local_pkgs = str(ROOT.joinpath("../../.."))
+        os.environ["NIX_PATH"] = f"localpkgs={local_pkgs}"
+        self.empty_config = NamedTemporaryFile()
+        self.empty_config.write(b"{}")
+        self.empty_config.flush()
+        os.environ["NIXPKGS_CONFIG"] = self.empty_config.name
+
+    def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
+        os.environ.update(self.old_environ)
+        self.empty_config.close()
+
+
 def get_current_plugins() -> List[Plugin]:
-    out = subprocess.check_output(["nix", "eval", "--json", GET_PLUGINS])
+    with CleanEnvironment():
+        out = subprocess.check_output(["nix", "eval", "--json", GET_PLUGINS])
     data = json.loads(out)
     plugins = []
     for name, attr in data.items():