formatting

This commit is contained in:
Jan Krebs 2020-02-20 16:08:38 +01:00
parent c6559f8a3e
commit 87901a0e91
13 changed files with 131 additions and 136 deletions

View file

@ -75,68 +75,67 @@
{})
resulting-map (merge cp-resource-map fs-resource-map)]
(if (empty? resulting-map)
[]
(vals resulting-map))))
[]
(vals resulting-map))))
(defn get-resource-paths-recursive ;:- [VirtualPath]
[fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
& {:keys [from-cp from-fs]
:or {from-cp true
from-fs true}}]
(map #(:virtual-path %)
(get-resources
fs-prefix base-path paths
:from-cp from-cp
:from-fs from-fs)))
(defn get-resource-paths-recursive ;:- [VirtualPath]
[fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
& {:keys [from-cp from-fs]
:or {from-cp true
from-fs true}}]
(map #(:virtual-path %)
(get-resources
fs-prefix base-path paths
:from-cp from-cp
:from-fs from-fs)))
; TODO: Add files to keep
(s/defn delete-resources!
[virtual-path :- s/Str]
(let [resource-paths
(reverse
(sort
(get-resource-paths-recursive
(str (fs/user-dir) "/")
virtual-path
[""]
:from-cp false)))]
(do
(doseq [resource-path resource-paths]
(Files/delete (fs/absolut-path virtual-path resource-path))))))
(s/defn delete-resources!
[virtual-path :- s/Str]
(let [resource-paths
(reverse
(sort
(get-resource-paths-recursive
(str (fs/user-dir) "/")
virtual-path
[""]
:from-cp false)))]
(do
(doseq [resource-path resource-paths]
(Files/delete (fs/absolut-path virtual-path resource-path))))))
; TODO: add ignore patterns filtering
(defn copy-resources!
[fs-prefix ;:- Prefix
base-path ;:- VirtualPath
source-paths ;:- [VirtualPath]
target-path ;:- VirtualPath
ignore-patterns ;:- s/Str
]
(let [resources
(sort
this/compare-resource
(get-resources fs-prefix base-path source-paths))]
(if (empty? resources)
(throw (IllegalArgumentException. (str "resource " base-path ", "
source-paths " not found")))
(doseq [resource resources]
(let [target-path (fs/absolut-path target-path (:virtual-path resource))
source-path (:java-path resource)]
(when (this/is-dir? resource)
(Files/createDirectories target-path fs/no-attributes))
(when (this/is-file? resource)
(Files/copy source-path target-path fs/overwrite-preserve-attributes)
))))))
(defn copy-resources!
[fs-prefix ;:- Prefix
base-path ;:- VirtualPath
source-paths ;:- [VirtualPath]
target-path ;:- VirtualPath
ignore-patterns ;:- s/Str
]
(let [resources
(sort
this/compare-resource
(get-resources fs-prefix base-path source-paths))]
(if (empty? resources)
(throw (IllegalArgumentException. (str "resource " base-path ", "
source-paths " not found")))
(doseq [resource resources]
(let [target-path (fs/absolut-path target-path (:virtual-path resource))
source-path (:java-path resource)]
(when (this/is-dir? resource)
(Files/createDirectories target-path fs/no-attributes))
(when (this/is-file? resource)
(Files/copy source-path target-path fs/overwrite-preserve-attributes)))))))
(defn distinct-resources-by-path
[resources]
(loop [paths (set (map :virtual-path resources))
resources resources
acc []]
(cond (empty? resources) acc
(contains? paths (:virtual-path (first resources))) (recur (disj paths (:virtual-path (first resources)))
(rest resources)
(conj acc (first resources)))
:else (recur paths (rest resources) acc))))
(defn distinct-resources-by-path
[resources]
(loop [paths (set (map :virtual-path resources))
resources resources
acc []]
(cond (empty? resources) acc
(contains? paths (:virtual-path (first resources))) (recur (disj paths (:virtual-path (first resources)))
(rest resources)
(conj acc (first resources)))
:else (recur paths (rest resources) acc))))

View file

@ -42,8 +42,7 @@
(when (some? java-path)
(if is-jar-resource
(jar/create-resource virtual-path java-path)
(fs/create-resource virtual-path java-path :java-classpath-filesystem))
))))
(fs/create-resource virtual-path java-path :java-classpath-filesystem))))))
(s/defn get-resources ;:- [this/Resource]
"base-path is sensible for getting the right jar from classpath. So base-path

View file

@ -37,7 +37,7 @@
(absolut-path
(apply this/virtual-path-from-elements path-elements))]
(when (Files/exists path-from-fs follow-link-option)
path-from-fs)))
path-from-fs)))
(defn create-resource
([virtual-path
@ -59,40 +59,40 @@
source-type]
(create-resource virtual-path (path-if-exists fs-prefix base-path virtual-path) source-type)))
(defn
list-entries-for-dir
[resource]
(.list (.toFile (:java-path resource))))
(defn
list-entries-for-dir
[resource]
(.list (.toFile (:java-path resource))))
(defn get-resources ;:- [Resource]
([fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
source-type]
(loop [paths paths
result []]
(if (not (empty? paths))
(let [path-to-work-with (first paths)
resource-to-work-with (create-resource
fs-prefix
base-path
path-to-work-with
source-type)
result (into result
[resource-to-work-with])]
(cond
(nil? resource-to-work-with) (recur (drop 1 paths) result)
(this/is-file? resource-to-work-with)
(recur (drop 1 paths) result)
(this/is-dir? resource-to-work-with)
(recur (into (drop 1 paths)
(map #(str path-to-work-with "/" %)
(list-entries-for-dir resource-to-work-with)))
result)
:else []))
(remove nil? result))))
([fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
]
(get-resources fs-prefix base-path paths :filesystem)))
(defn get-resources ;:- [Resource]
([fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
source-type]
(loop [paths paths
result []]
(if (not (empty? paths))
(let [path-to-work-with (first paths)
resource-to-work-with (create-resource
fs-prefix
base-path
path-to-work-with
source-type)
result (into result
[resource-to-work-with])]
(cond
(nil? resource-to-work-with) (recur (drop 1 paths) result)
(this/is-file? resource-to-work-with)
(recur (drop 1 paths) result)
(this/is-dir? resource-to-work-with)
(recur (into (drop 1 paths)
(map #(str path-to-work-with "/" %)
(list-entries-for-dir resource-to-work-with)))
result)
:else []))
(remove nil? result))))
([fs-prefix ;:- Prefix
base-path ;:- VirtualPath
paths ;:- [VirtualPath]
]
(get-resources fs-prefix base-path paths :filesystem)))

View file

@ -70,14 +70,14 @@
elements-list]
(let [norm-path-to-filter-for (str base-path-to-filter-for "/")
start (count norm-path-to-filter-for)]
(map
(fn [el]
(let [end (if (st/ends-with? el "/") (dec (count el)) (count el))]
(subs el start end)))
(filter
(fn [element] (and (st/starts-with? element norm-path-to-filter-for)
(not (= element norm-path-to-filter-for))))
elements-list))))
(map
(fn [el]
(let [end (if (st/ends-with? el "/") (dec (count el)) (count el))]
(subs el start end)))
(filter
(fn [element] (and (st/starts-with? element norm-path-to-filter-for)
(not (= element norm-path-to-filter-for))))
elements-list))))
(defn filter-and-remove-for-path
[path-to-filter-for

View file

@ -20,9 +20,9 @@
[fs-prefix theme target-path ignore-patterns]
(let [theme-path (str "templates/themes/" theme)]
(cp-io/copy-resources! fs-prefix theme-path ["css" "js"]
target-path ignore-patterns)
target-path ignore-patterns)
(cp-io/copy-resources! fs-prefix (str theme-path "/html") ["404.html"]
target-path ignore-patterns)))
target-path ignore-patterns)))
(defn copy-html-from-theme!
[fs-prefix theme target-path ignore-patterns]

View file

@ -21,7 +21,6 @@
(is
(sut/path-if-exists "dummy_only_in_cp_fs")))
(deftest should-get-resources-from-jar-and-fs-classpath
(is (=
[]

View file

@ -38,7 +38,6 @@
(is
(sut/path-if-exists fs-root nil "/dummy/dummy_from_fs")))
(deftest test-list-entries-for-dir
(is
(= ["dummy2"

View file

@ -16,15 +16,14 @@
(deftest test-is-from-classpath-jar?
(is
(sut/is-from-classpath-jar? (.toURI (io/resource "dummy"))))
)
(sut/is-from-classpath-jar? (.toURI (io/resource "dummy")))))
(deftest test-path-if-exists
(is
(sut/path-if-exists "dummy/dummy_from_jar")))
(is
(= nil
(sut/path-if-exists "not-existing")))
(is
(= nil
(sut/path-if-exists "not-existing")))
(deftest test-get-resources
(is

View file

@ -40,7 +40,7 @@
"dummy2/dummy2_from_fs"])
(sort (map ftt/filter-path
(sut/get-resources "fs_root" "dummy"
["dummy_from_jar" "dummy_from_fs" "dummy2"])))))
["dummy_from_jar" "dummy_from_fs" "dummy2"])))))
(is (=
[{:virtual-path "js/dummy.js"
:source-type :java-classpath-filesystem