--- /dev/null
+;
+
+(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))