X-Git-Url: https://njoseph.me/gitweb/babashka-scripts.git/blobdiff_plain/0b0f2aa39a06e77b1517f895a2c82946f684b568..67d5a15a20df70f416cf78efb2137344f239da2f:/lib.clj diff --git a/lib.clj b/lib.clj index 8978c3a..1f88070 100644 --- a/lib.clj +++ b/lib.clj @@ -1,11 +1,22 @@ ; Common utility functions used by scripts -(import '[java.nio.file Files FileSystems CopyOption StandardCopyOption]) +(ns lib + (:require [babashka.process :as p] + [org.httpkit.client :as http] + [clojure.java.io :as io] + [clojure.string :refer [replace-first]]) + (:import [java.nio.file Files FileSystems CopyOption StandardCopyOption])) + +(defn run-cmd + [command] + (->> command + p/process + :out + slurp)) (defn extract-file-from-zip [zip-file-name source destination] (let [zip-file (io/file zip-file-name) - src (io/file source) dest (io/file destination) fs (FileSystems/newFileSystem (.toPath zip-file) nil) file-in-zip (.getPath fs source (into-array String []))] @@ -16,5 +27,9 @@ (defn expand-home [s] (if (.startsWith s "~") - (clojure.string/replace-first s "~" (System/getProperty "user.home")) + (replace-first s "~" (System/getProperty "user.home")) s)) + +(defn download-binary + [url destination] + (io/copy (:body @(http/get url)) (io/file destination)))