summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorGruruya <gruruya.chi4c@slmails.com>2023-05-27 00:54:21 -0400
committerGitHub <noreply@github.com>2023-05-27 06:54:21 +0200
commit09f36f51989dd8045129781285902f4eaa07779b (patch)
treec60b935f581eb9c0dacb19cfd4416346f85530ab
parent2beea7281061822b69e77715c8b0c30ed4d55a5c (diff)
downloadNim-09f36f51989dd8045129781285902f4eaa07779b.tar.gz
atlas: search improvements (#21929)
* Get description and license from github json response

* Allow running `atlas search` outside of a workspace

* Check `len` instead of `dirExists`

* make `list` identical to `search`
-rw-r--r--tools/atlas/atlas.nim10
-rw-r--r--tools/atlas/packagesjson.nim3
2 files changed, 8 insertions, 5 deletions
diff --git a/tools/atlas/atlas.nim b/tools/atlas/atlas.nim
index d46378796..97e6afbb9 100644
--- a/tools/atlas/atlas.nim
+++ b/tools/atlas/atlas.nim
@@ -756,10 +756,10 @@ proc main =
       c.workspace = detectWorkspace()
       if c.workspace.len > 0:
         readConfig c
-      else:
+        echo "Using workspace ", c.workspace
+      elif action notin ["search", "list"]:
         error "No workspace found. Run `atlas init` if you want this current directory to be your workspace."
         return
-      echo "Using workspace ", c.workspace
 
   when MockupRun:
     c.depsDir = c.workspace
@@ -807,8 +807,10 @@ proc main =
     noArgs()
     updatePackages(c)
   of "search", "list":
-    updatePackages(c)
-    search getPackages(c.workspace), args
+    if c.workspace.len != 0:
+      updatePackages(c)
+      search getPackages(c.workspace), args
+    else: search @[], args
   of "updateprojects":
     updateDir(c, c.workspace, if args.len == 0: "" else: args[0])
   of "updatedeps":
diff --git a/tools/atlas/packagesjson.nim b/tools/atlas/packagesjson.nim
index 5ceef706f..4c4d42595 100644
--- a/tools/atlas/packagesjson.nim
+++ b/tools/atlas/packagesjson.nim
@@ -92,7 +92,8 @@ proc githubSearch(seen: var HashSet[string]; terms: seq[string]) =
         url: j.getOrDefault("html_url").getStr,
         downloadMethod: "git",
         tags: toTags(j.getOrDefault("topics")),
-        description: "<none>, not listed in packages.json",
+        description: j.getOrDefault("description").getStr,
+        license: j.getOrDefault("license").getOrDefault("spdx_id").getStr,
         web: j.getOrDefault("html_url").getStr
       )
       if not seen.containsOrIncl(p.url):