From 5fd975c312493a443bd07a88cd79a5b01a052041 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Tue, 13 Oct 2020 16:30:31 +0200 Subject: [PATCH] Examples [skip ci] --- .../{pom_version.clj => get_pom_version.clj} | 4 +-- examples/set_pom_version.clj | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) rename examples/{pom_version.clj => get_pom_version.clj} (93%) create mode 100755 examples/set_pom_version.clj 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))))) +