diff --git a/examples/pom_version.clj b/examples/get_pom_version.clj similarity index 93% rename from examples/pom_version.clj rename to examples/get_pom_version.clj index 164bfe69..2d05dfbe 100755 --- a/examples/pom_version.clj +++ b/examples/get_pom_version.clj @@ -1,6 +1,6 @@ #!/usr/bin/env bb -(ns pom-version +(ns get-pom-version {:author "Wilker Lucio"} (:require [clojure.data.xml :as xml] [clojure.string :as str])) @@ -17,7 +17,7 @@ (->> (slurp path) (xml/parse-str) - (xml-seq ) + (xml-seq) (filter #(tag-name? % "version")) first tag-content-str))) diff --git a/examples/set_pom_version.clj b/examples/set_pom_version.clj new file mode 100755 index 00000000..1c857e24 --- /dev/null +++ b/examples/set_pom_version.clj @@ -0,0 +1,34 @@ +#!/usr/bin/env bb + +;; usage: version.clj pom.xml 1.0.1 + +;; pom.xml: +;; +;; +;; + +;; prints to stdout: +;; +;; 1.0.1 +;; + +(ns set-pom-version + {:author "Michiel Borkent"} + (:require [clojure.data.xml :as xml])) + +(def pom-xml (first *command-line-args*)) +(def version (second *command-line-args*)) + +(def xml (xml/parse-str (slurp pom-xml))) + +(defn update-version [elt] + (if (= :version (:tag elt)) + (assoc elt :content version) + elt)) + +(println + (xml/emit-str + (update xml :content + (fn [contents] + (map update-version contents))))) +