Skip to content

Commit 13fdd61

Browse files
committed
Add update-versions.bb admin script
1 parent 4d3f49a commit 13fdd61

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

update_versions.bb

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
["project.clj"
9+
"ring-bench/project.clj"
10+
"ring-core/project.clj"
11+
"ring-core-protocols/project.clj"
12+
"ring-devel/project.clj"
13+
"ring-jakarta-servlet/project.clj"
14+
"ring-jetty-adapter/project.clj"
15+
"ring-servlet/project.clj"
16+
"ring-websocket-protocols/project.clj"])
17+
18+
(def version (first *command-line-args*))
19+
20+
(when-not version
21+
(println "Error: requires version as first argument.")
22+
(System/exit 1))
23+
24+
(doseq [f project-files]
25+
(-> (slurp f)
26+
(str/replace #"\(defproject (.*?) \"(.*?)\""
27+
(format "(defproject $1 \"%s\"" version))
28+
(str/replace #"\[ring/(.*?) \"(.*?)\"\]"
29+
(format "[ring/$1 \"%s\"]" version))
30+
(str/replace #"\[org\.ring-clojure/(.*?) \"(.*?)\"\]"
31+
(format "[org.ring-clojure/$1 \"%s\"]" version))
32+
(as-> s (spit f s)))
33+
(println (format "Updated '%s'." f)))
34+
35+
(-> (slurp "README.md")
36+
(str/replace
37+
#"ring/ring-core \{:mvn/version \"(.*?)\"\}"
38+
(format "ring/ring-core {:mvn/version \"%s\"}" version))
39+
(str/replace
40+
#"\[ring/ring-core (.*?)\]"
41+
(format "[ring/ring-core \"%s\"]" version))
42+
(as-> s (spit "README.md" s)))
43+
(println "Updated 'README.md'.")
44+
45+
(def now (LocalDateTime/now))
46+
(def formatter (DateTimeFormatter/ofPattern "yyyy-MM-dd"))
47+
48+
(->> (slurp "CHANGELOG.md")
49+
(str "## " version " (" (.format now formatter) ")\n\n"
50+
"* TBD\n\n")
51+
(spit "CHANGELOG.md"))
52+
53+
(println "Updated 'CHANGELOG.md'.")
54+
(newline)
55+
(println "Remember to update the CHANGELOG!")

0 commit comments

Comments
 (0)