From c8a77789bff91f96d86eade27d5e0f90da118cc4 Mon Sep 17 00:00:00 2001
From: Martin <maarand@teklia.com>
Date: Thu, 12 Nov 2020 11:45:51 +0100
Subject: [PATCH] allow git requirements to be used

---
 worker-{{cookiecutter.slug}}/setup.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/worker-{{cookiecutter.slug}}/setup.py b/worker-{{cookiecutter.slug}}/setup.py
index ee956590..3f9cc17f 100755
--- a/worker-{{cookiecutter.slug}}/setup.py
+++ b/worker-{{cookiecutter.slug}}/setup.py
@@ -9,10 +9,25 @@ MODULE = "worker_{{cookiecutter.slug}}"
 COMMAND = "worker-{{cookiecutter.slug}}"
 
 
+def parse_requirements_line(line):
+    """Special case for git requirements"""
+    if line.startswith("git+http"):
+        assert "@" in line, "Branch should be specified with suffix (ex: @master)"
+        assert (
+            "#egg=" in line
+        ), "Package name should be specified with suffix (ex: #egg=kraken)"
+        package_name = line.split("#egg=")[-1]
+        return f"{package_name} @ {line}"
+    else:
+        return line
+
+
 def parse_requirements():
     path = Path(__file__).parent.resolve() / "requirements.txt"
     assert path.exists(), f"Missing requirements: {path}"
-    return list(map(str.strip, path.read_text().splitlines()))
+    return list(
+        map(parse_requirements_line, map(str.strip, path.read_text().splitlines()))
+    )
 
 
 setup(
-- 
GitLab