]> njoseph.me Git - babashka-scripts.git/blobdiff - lib.clj
Add babashka self-updater script
[babashka-scripts.git] / lib.clj
diff --git a/lib.clj b/lib.clj
new file mode 100644 (file)
index 0000000..86dc702
--- /dev/null
+++ b/lib.clj
@@ -0,0 +1,18 @@
+;
+
+(import '[java.nio.file Files FileSystems CopyOption StandardCopyOption])
+
+(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 []))]
+    (Files/copy file-in-zip (.toPath dest)
+                (into-array CopyOption [StandardCopyOption/REPLACE_EXISTING]))))
+
+(defn expand-home [s]
+  (if (.startsWith s "~")
+    (clojure.string/replace-first s "~" (System/getProperty "user.home"))
+    s))