summary refs log tree commit diff
path: root/pkgs/servers/home-assistant/parse-requirements.py
diff options
context:
space:
mode:
authorRobert Schütz <robert.schuetz@stud.uni-heidelberg.de>2018-02-10 23:18:41 +0100
committerRobert Schütz <robert.schuetz@stud.uni-heidelberg.de>2018-02-10 23:18:41 +0100
commitb1603e951effe2dd1149d8ade015b757a7fb4c72 (patch)
treec2350f73b43f80d2745367bf72f31ca64e945119 /pkgs/servers/home-assistant/parse-requirements.py
parent0577bc4832d67e77a9f224c8b04aef1d80c9ed8b (diff)
downloadnixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar.gz
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar.bz2
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar.lz
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar.xz
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.tar.zst
nixpkgs-b1603e951effe2dd1149d8ade015b757a7fb4c72.zip
home-assistant: make parse-requirements.py detect more packages
Diffstat (limited to 'pkgs/servers/home-assistant/parse-requirements.py')
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index aa293921e87..5af794e75fa 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -52,10 +52,16 @@ packages = json.loads(output)
 
 def name_to_attr_path(req):
     attr_paths = []
-    pattern = re.compile('python3\\.6-{}-\\d'.format(req), re.I)
-    for attr_path, package in packages.items():
-        if pattern.match(package['name']):
-            attr_paths.append(attr_path)
+    names = [req]
+    # E.g. python-mpd2 is actually called python3.6-mpd2
+    # instead of python-3.6-python-mpd2 inside Nixpkgs
+    if req.startswith('python-'):
+        names.append(req[len('python-'):])
+    for name in names:
+        pattern = re.compile('^python\\d\\.\\d-{}-\\d'.format(name), re.I)
+        for attr_path, package in packages.items():
+            if pattern.match(package['name']):
+                attr_paths.append(attr_path)
     # Let's hope there's only one derivation with a matching name
     assert(len(attr_paths) <= 1)
     if attr_paths:
@@ -64,6 +70,7 @@ def name_to_attr_path(req):
         return None
 
 version = get_version()
+print('Generating component-packages.nix for version {}'.format(version))
 requirements = fetch_reqs(version=version)
 build_inputs = {}
 for component, reqs in requirements.items():