diff options
Diffstat (limited to 'testament/categories.nim')
-rw-r--r-- | testament/categories.nim | 31 |
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 |