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