From 3d5bf40f99a82f8934ac10ccaacf60a4bef055d7 Mon Sep 17 00:00:00 2001 From: jem Date: Mon, 20 Jan 2020 21:01:12 +0100 Subject: [PATCH] rename & reorder --- src/cryogen_core/classpath_able_io.clj | 50 ++++++++++++++------------ 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/src/cryogen_core/classpath_able_io.clj b/src/cryogen_core/classpath_able_io.clj index f72aea0..bbd99d1 100644 --- a/src/cryogen_core/classpath_able_io.clj +++ b/src/cryogen_core/classpath_able_io.clj @@ -14,6 +14,7 @@ [java.nio.file FileSystems Paths Files SimpleFileVisitor LinkOption StandardCopyOption] [java.nio.file.attribute FileAttribute])) +; -------------------- Domain Definition ------------------------------ (def SourceType (s/enum :classpath :filesystem)) (def ResourceType (s/enum :file :dir :unknown)) @@ -33,22 +34,7 @@ :source-type SourceType :resource-type ResourceType}) -(def public "resources/public") - -(def NoLinkOption (into-array [LinkOption/NOFOLLOW_LINKS])) - -(defn path - "Creates path from given parts, ignore empty elements" - [& path-parts] - (->> path-parts - (remove st/blank?) - (st/join "/") - (#(st/replace % #"/+" "/")))) - -(defn filter-for-ignore-patterns - [ignore-patterns source-list] - (filter #(not (re-matches ignore-patterns %)) source-list)) - +; ----------------------- Domain functions ------------------------ (s/defn create-resource :- Resource ([short-path :- ShortPath uri :- ResourceUri @@ -68,14 +54,34 @@ :java-path java-path :source-type source-type :resource-type (cond - (Files/isDirectory java-path NoLinkOption) :dir - (Files/isRegularFile java-path NoLinkOption) :file + (Files/isDirectory java-path no-link-option) :dir + (Files/isRegularFile java-path no-link-option) :file :else :unknown)})) (s/defn is-file? :- s/Bool [resource :- Resource] (= :file (:resource-type resource))) +(defn filter-for-ignore-patterns + [ignore-patterns source-list] + (filter #(not (re-matches ignore-patterns %)) source-list)) + +; ------------------- infra --------------------------------- + +(def public "resources/public") + +(def no-link-option (into-array [LinkOption/NOFOLLOW_LINKS])) + +(defn current-path []) + +(defn path + "Creates path from given parts, ignore empty elements" + [& path-parts] + (->> path-parts + (remove st/blank?) + (st/join "/") + (#(st/replace % #"/+" "/")))) + (s/defn init-file-system [resource-uri :- ResourceUri] (let [filesystem-uri (URI. (first (st/split (.toString resource-uri) #"!")))] @@ -91,7 +97,7 @@ (let [resource-uri (.toURI (io/resource resource-path))] ; check if contains jar: (when (= (.getScheme resource-uri) "jar") (init-file-system resource-uri)) - (when (Files/exists (Paths/get resource-uri) NoLinkOption) + (when (Files/exists (Paths/get resource-uri) no-link-option) (Paths/get resource-uri))) (catch Exception e nil))) @@ -100,7 +106,7 @@ [full-path :- ShortPath] (let [path-from-fs (Paths/get (URI. (str "file://" full-path)))] ;fragile (try - (when (Files/exists path-from-fs NoLinkOption) + (when (Files/exists path-from-fs no-link-option) path-from-fs) (catch Exception e nil)))) @@ -227,9 +233,9 @@ fs-prefix base-path resource-path)] - (when (Files/isDirectory source-file NoLinkOption) + (when (Files/isDirectory source-file no-link-option) (Files/createDirectories target-file (into-array FileAttribute []))) - (when (Files/isRegularFile source-file NoLinkOption) + (when (Files/isRegularFile source-file no-link-option) (Files/copy source-file target-file (into-array StandardCopyOption [StandardCopyOption/COPY_ATTRIBUTES StandardCopyOption/REPLACE_EXISTING])) ))))))