#! /usr/bin/env bb
-(require '[clojure.java.shell :refer [sh]]
- '[cheshire.core :as json]
+(require '[cheshire.core :as json]
'[org.httpkit.client :as http]
- '[babashka.fs :as fs])
+ '[babashka.fs :as fs]
+ '[clojure.java.io :as io]
+ '[lib :refer [download-binary expand-home extract-file-from-zip]])
(defn babashka-latest-version
[]
(let [url (get-download-url version architecture)]
(download-binary url output)))
-(when (= *file* (System/getProperty "babashka.file"))
- (let [architecture "linux-amd64" ;; TODO support multiple
- ;; architectures
+(defn update-babashka
+ []
+ (let [architecture "linux-amd64" ;; TODO support other architectures
zip-file "babashka.zip"
destination (expand-home "~/bin/bb")
version (babashka-latest-version)]
(fs/set-posix-file-permissions destination "rwxr-xr-x")
(io/delete-file zip-file)
(println "Done!")))
+
+(when (= *file* (System/getProperty "babashka.file")) (update-babashka))