summary refs log tree commit diff stats
path: root/testament/categories.nim
diff options
context:
space:
mode:
Diffstat (limited to 'testament/categories.nim')
-rw-r--r--testament/categories.nim31
1 files changed, 19 insertions, 12 deletions
diff --git a/testament/categories.nim b/testament/categories.nim
index eecdd7bc9..add080020 100644
--- a/testament/categories.nim
+++ b/testament/categories.nim
@@ -470,18 +470,25 @@ proc getPackageDir(package: string): string =
 iterator listPackages(): tuple[name, url, cmd: string, hasDeps: bool] =
   let defaultCmd = "nimble test"
   let packageList = parseFile(packageIndex)
-  for n, cmd, commit, hasDeps in important_packages.packages.items:
-    var found = false
-    for package in packageList.items:
-      let name = package["name"].str
-      if name == n:
-        found = true
-        let url = package["url"].str
-        let cmd = if cmd.len == 0: defaultCmd else: cmd
-        yield (name, url, cmd, hasDeps)
-        break
-    if not found:
-      raise newException(ValueError, "Cannot find package '$#'." % n)
+  for n, cmd, hasDeps, url in important_packages.packages.items:
+    let cmd = if cmd.len == 0: defaultCmd else: cmd
+    if url.len != 0:
+      if hasDeps:
+        # use url instead of name, so we can do 'nimble install'
+        yield (url, url, cmd, hasDeps)
+      else:
+        yield (n, url, cmd, hasDeps)
+    else:
+      var found = false
+      for package in packageList.items:
+        let name = package["name"].str
+        if name == n:
+          found = true
+          let p_url = package["url"].str
+          yield (name, p_url, cmd, hasDeps)
+          break
+      if not found:
+        raise newException(ValueError, "Cannot find package '$#'." % n)
 
 proc makeSupTest(test, options: string, cat: Category): TTest =
   result.cat = cat