From 9da8be80d72b89328d70b47b71050251e32c470a Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Fri, 12 Feb 2021 15:27:23 +0530 Subject: [PATCH] Replace babashka/curl with httpkit.client Also, corrected the mistake of downloading the linux-static binary by default. Signed-off-by: Joseph Nuthalapati --- lib.clj | 6 ++++++ update-babashka.clj | 16 +++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib.clj b/lib.clj index 8978c3a..5f216d1 100644 --- a/lib.clj +++ b/lib.clj @@ -2,6 +2,8 @@ (import '[java.nio.file Files FileSystems CopyOption StandardCopyOption]) +(require '[org.httpkit.client :as http]) + (defn extract-file-from-zip [zip-file-name source destination] (let [zip-file (io/file zip-file-name) @@ -18,3 +20,7 @@ (if (.startsWith s "~") (clojure.string/replace-first s "~" (System/getProperty "user.home")) s)) + +(defn download-binary + [url destination] + (io/copy (:body @(http/get url)) (io/file destination))) diff --git a/update-babashka.clj b/update-babashka.clj index a449a7c..b14d0b9 100755 --- a/update-babashka.clj +++ b/update-babashka.clj @@ -2,22 +2,18 @@ (require '[clojure.java.shell :refer [sh]] '[cheshire.core :as json] - '[babashka.curl :as curl] + '[org.httpkit.client :as http] '[babashka.fs :as fs]) (defn babashka-latest-version [] - (-> (curl/get "https://api.github.com/repos/babashka/babashka/tags") + (-> @(http/get "https://api.github.com/repos/babashka/babashka/tags") :body (json/parse-string true) first :name (subs 1))) -(defn download-binary - [url 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" @@ -37,17 +33,19 @@ (defn download-latest [version architecture output] (let [url (get-download-url version architecture)] - (println (str "Latest version is " version)) (download-binary url output))) (when (= *file* (System/getProperty "babashka.file")) - (let [architecture "linux-static-amd64" ;; TODO support multiple + (let [architecture "linux-amd64" ;; TODO support multiple ;; architectures zip-file "babashka.zip" destination (expand-home "~/bin/bb") version (babashka-latest-version)] + (println (str "Latest version is " version)) (check-latest version) + (println "Updating...") (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))) + (io/delete-file zip-file) + (println "Done!"))) -- 2.43.0