Skip to content

Commit 3aac434

Browse files
committed
Add update-versions.bb admin script
1 parent c5fb9d4 commit 3aac434

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

update_versions.bb

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/usr/bin/env bb
2+
3+
(require '[clojure.string :as str])
4+
(import 'java.time.format.DateTimeFormatter
5+
'java.time.LocalDateTime)
6+
7+
(def project-files
8+
["cljfmt/project.clj"
9+
"lein-cljfmt/project.clj"])
10+
11+
(def version (first *command-line-args*))
12+
13+
(when-not version
14+
(println "Error: requires version as first argument.")
15+
(System/exit 1))
16+
17+
(doseq [f project-files]
18+
(-> (slurp f)
19+
(str/replace #"\(defproject (.*?) \"(.*?)\""
20+
(format "(defproject $1 \"%s\"" version))
21+
(str/replace #"\[dev\.weavejester/cljfmt \"(.*?)\"\]"
22+
(format "[dev.weavejester/cljfmt \"%s\"]" version))
23+
(as-> s (spit f s)))
24+
(println (format "Updated '%s'." f)))
25+
26+
(-> (slurp "README.md")
27+
(str/replace
28+
#"releases/download/(.*?)/cljfmt-(.*?)-win-amd64.zip"
29+
(format "releases/download/%s/cljfmt-%s-win-amd64.zip" version version))
30+
(str/replace
31+
#"cljfmt '\{:git/tag \"(.*?)\"\}\'"
32+
(format "cljfmt '{:git/tag \"%s\"}'" version))
33+
(str/replace
34+
#"\[dev\.weavejester/lein-cljfmt \"(.*?)\"\]"
35+
(format "[dev.weavejester/lein-cljfmt \"%s\"]" version))
36+
(str/replace
37+
#"dev\.weavejester/cljfmt \{:mvn/version \"(.*?)\"\}"
38+
(format "dev.weavejester/cljfmt {:mvn/version \"%s\"}" version))
39+
(as-> s (spit "README.md" s)))
40+
(println "Updated 'README.md'.")
41+
42+
(-> (slurp "install.sh")
43+
(str/replace #"VERSION=(.*?)\n" (format "VERSION=%s\n" version))
44+
(as-> s (spit "install.sh" s)))
45+
(println "Updated 'install.sh'.")
46+
47+
(-> (slurp "cljfmt/src/cljfmt/main.clj")
48+
(str/replace
49+
#"\(def \^:const VERSION \"(.*?)\"\)"
50+
(format "(def ^:const VERSION \"%s\")" version))
51+
(as-> s (spit "cljfmt/src/cljfmt/main.clj" s)))
52+
(println "Updated 'cljfmt/src/cljfmt/main.clj'.")
53+
54+
(def now (LocalDateTime/now))
55+
(def formatter (DateTimeFormatter/ofPattern "yyyy-MM-dd"))
56+
57+
(->> (slurp "CHANGELOG.md")
58+
(str "## " version " (" (.format now formatter) ")\n\n"
59+
"* TBD\n\n")
60+
(spit "CHANGELOG.md"))
61+
62+
(println "Updated 'CHANGELOG.md'.")
63+
(newline)
64+
(println "Remember to update the CHANGELOG!")

0 commit comments

Comments
 (0)