'[babashka.curl :as curl]
'[babashka.fs :as fs])
-(defn babashka-latest-version []
+(defn babashka-latest-version
+ []
(-> (curl/get "https://api.github.com/repos/babashka/babashka/tags")
:body
(json/parse-string true)
(defn download-binary
[url destination]
- (io/copy
- (:body (curl/get url {:as :stream}))
- (io/file destination)))
+ (io/copy (:body (curl/get url {:as :stream})) (io/file destination)))
(defn get-download-url
[version architecture]
- (str "https://github.com/babashka/babashka/releases/download/v" version "/babashka-"
- version "-" architecture ".zip"))
+ (str "https://github.com/babashka/babashka/releases/download/v"
+ version
+ "/babashka-"
+ version
+ "-"
+ architecture
+ ".zip"))
(defn check-latest
[version]
(println (str "Latest version is " version))
(download-binary url output)))
-(= *file* (System/getProperty "babashka.file")
- (let [architecture "linux-static-amd64" ;; TODO support multiple architectures
- zip-file "babashka.zip"
- destination (expand-home "~/bin/bb")
- version (babashka-latest-version)]
- (check-latest version)
- (download-latest version architecture zip-file)
- (extract-file-from-zip zip-file "bb" destination)
- (fs/set-posix-file-permissions "/home/joseph/bin/bb" "rwxr-xr-x")
- (io/delete-file zip-file)))
+(when (= *file* (System/getProperty "babashka.file"))
+ (let [architecture "linux-static-amd64" ;; TODO support multiple
+ ;; architectures
+ zip-file "babashka.zip"
+ destination (expand-home "~/bin/bb")
+ version (babashka-latest-version)]
+ (check-latest version)
+ (download-latest version architecture zip-file)
+ (extract-file-from-zip zip-file "bb" destination)
+ (fs/set-posix-file-permissions destination "rwxr-xr-x")
+ (io/delete-file zip-file)))