Skip to content

Commit

Permalink
Add qualify_deps.clj example
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed Oct 12, 2020
1 parent 2514335 commit a0f6b2a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -78,6 +78,8 @@ and this script:
#_baz #_{:mvn/version "0.3.0"}}}
```

Also see [examples](examples).

# License

Copyright © 2020 Michiel Borkent
Expand Down
30 changes: 30 additions & 0 deletions examples/qualify_deps.clj
@@ -0,0 +1,30 @@
(require '[borkdude.rewrite-edn :as r]
'[clojure.edn :as edn])

(def edn-string (slurp "deps.edn"))

(def nodes (r/parse-string edn-string))

(defn qualify-sym-node [sym-node]
(let [sym (r/sexpr sym-node)]
(if (or (not (symbol? sym))
(qualified-symbol? sym))
sym-node
(symbol (str sym) (str sym)))))

(defn fully-qualify-deps [node path]
(r/update-in node path #(r/map-keys qualify-sym-node %)))

(def edn (edn/read-string edn-string))
(def paths
(concat
(when (:deps edn)
[[:deps]])
(keep (fn [[k v]]
(when (:extra-deps v)
[:aliases k :extra-deps])) (:aliases edn))))

(def updated-nodes
(reduce fully-qualify-deps nodes paths))

(spit "deps.edn" (str updated-nodes))

0 comments on commit a0f6b2a

Please sign in to comment.