fix separation of new-io

This commit is contained in:
jem 2020-01-07 14:20:21 +01:00
parent a890a693b3
commit 78ff298b42
5 changed files with 102 additions and 72 deletions

View file

@ -9,6 +9,7 @@
[text-decoration.core :refer :all]
[cryogen-core.io :as cryogen-io]
[cryogen-core.new-io :as new-io]
[cryogen-core.classpath-able-io :as cp-io]
[cryogen-core.klipse :as klipse]
[cryogen-core.markup :as m]
[cryogen-core.rss :as rss]
@ -541,7 +542,7 @@
file-resource-prefix "resources/"
resource-prefix (str "templates/themes/" theme)
file-uri (:uri
(new-io/resource-from-cp-or-fs
(cp-io/resource-from-cp-or-fs
file-resource-prefix resource-prefix ""
:from-cp false))]
(when debug?
@ -555,24 +556,24 @@
;; TODO: 2. use target/theme as custome-resource-path
(set-custom-resource-path! (.toString file-uri))
;(cryogen-io/wipe-public-folder keep-files)
(new-io/delete-resource-recursive! (new-io/path "resources/public" blog-prefix))
(new-io/delete-resource-recursive! (cp-io/path "resources/public" blog-prefix))
(println (blue "copying theme resources"))
;(cryogen-io/copy-resources-from-theme config)
(new-io/copy-resources-from-theme! "resources/"
theme
(new-io/path "resources/public" blog-prefix)
(cp-io/path "resources/public" blog-prefix)
ignored-files)
(println (blue "copying resources"))
;(cryogen-io/copy-resources config)
(new-io/copy-resources-from-user! "resources/"
(new-io/copy-resources-from-templates! "resources/"
resources
(new-io/path "resources/public" blog-prefix)
(cp-io/path "resources/public" blog-prefix)
ignored-files)
;(copy-resources-from-markup-folders config)
(new-io/create-dirs-from-markup-folders! "resources/"
(:posts config)
(:pages config)
(new-io/path "resources/public" blog-prefix)
(cp-io/path "resources/public" blog-prefix)
ignored-files)
; TODO: Hier weitermachen
(compile-pages params modelled-pages)

View file

@ -11,7 +11,9 @@
[clojure.java.io :as io]
[cryogen-core.classpath-able-io :as cp-io]))
(defn copy-resources-from-user!
(def delete-resource-recursive! cp-io/delete-resource-recursive!)
(defn copy-resources-from-templates!
[fs-prefix resources target-path ignore-patterns]
(let [resource-path "templates"]
(cp-io/copy-resources! fs-prefix resource-path resources

View file

@ -10,6 +10,7 @@
(:require [clojure.test :refer :all]
[clojure.java.io :as io]
[schema.core :as s]
[cryogen-core.file-test-tools :as ftt]
[cryogen-core.classpath-able-io :as sut]))
(s/set-fn-validation! true)
@ -18,23 +19,6 @@
(def target "target/tmp")
(defn verify-file-exists [path]
(.exists (io/file path)))
(defn verify-dir-exists [path]
(and (verify-file-exists path)
(.isDirectory (io/file path))))
(defn filter-object
[e]
{:path (:path e)
:source-type (:source-type e)
:resource-type (:resource-type e)})
(deftest test-uri-from-cp
(is
(sut/file-from-cp ".gitkeep")))
(deftest test-resource-from-cp-or-fs
(is
(.exists
@ -60,7 +44,7 @@
{:path "js/subdir"
:source-type :classpath
:resource-type :dir}
(filter-object
(ftt/filter-object
(sut/resource-from-cp-or-fs
"./not-existing-so-load-from-cp"
"templates/themes/bootstrap4-test"
@ -74,7 +58,7 @@
[{:path "js/dummy.js"
:source-type :classpath
:resource-type :file}]
(map filter-object
(map ftt/filter-object
(sut/get-resources-recursive
"" "templates/themes/bootstrap4-test" ["js/dummy.js"]))))
(is (=
@ -104,18 +88,6 @@
(sut/get-resources-recursive
"" "templates/themes/bootstrap4-test" ["."]))))))
(deftest test-get-distinct-markup-dirs
(is (=
["test_pages"
"test_pages/home"
"test_posts"
"test_posts/home"]
(sort (map :path
(sut/get-distinct-markup-dirs
"not-existing-get-from-cp"
"test_posts" "test_pages"
""))))))
(deftest test-distinct-resources-by-path
(is (= [{:path "pages/test"}
{:path "pages/test1"}
@ -125,43 +97,14 @@
{:path "pages/test2"}
{:path "pages/test1"}]))))
(deftest test-create-dirs-from-markup-folders!
(is (do
(sut/delete-resource-recursive! (str target "2"))
(sut/create-dirs-from-markup-folders!
"not-existing-get-from-cp" "test_posts" "test_pages"
(str target "2") "")
(and (verify-dir-exists
(str (str target "2") "/test_pages"))
(verify-dir-exists
(str (str target "2") "/test_posts"))
(verify-dir-exists
(str (str target "2") "/test_pages/home"))))))
(deftest test-filter-for-ignore-patterns
(is (=
["file.js"]
(sut/filter-for-ignore-patterns #".*\.ignore" ["file.js" "file.ignore"]))))
(deftest test-delete-resource-recursive!
(is
(do
(.mkdir (io/file target))
(sut/delete-resource-recursive! target)
(not (verify-dir-exists target)))))
(deftest test-filter-for-ignore-patterns
(is (=
["file.js"]
(sut/filter-for-ignore-patterns #".*\.ignore" ["file.js" "file.ignore"]))))
(deftest test-copy-resources-from-theme! (is (do
(sut/delete-resource-recursive! target)
(sut/copy-resources-from-theme! "./" theme target "")
(and (verify-dir-exists
(str target "/js"))
(verify-file-exists
(str target "/js/dummy.js"))
(verify-dir-exists
(str target "/js/subdir"))
(verify-file-exists
(str target "/js/subdir/subdummy.js"))
(verify-file-exists
(str target "/css/dummy.css"))
(verify-file-exists
(str target "/404.html"))))))
(not (ftt/verify-dir-exists target)))))

View file

@ -0,0 +1,24 @@
; Copyright (c) meissa. All rights reserved.
; The use and distribution terms for this software are covered by the
; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
; which can be found in the file epl-v10.html at the root of this distribution.
; By using this software in any fashion, you are agreeing to be bound by
; the terms of this license.
; You must not remove this notice, or any other, from this software.
(ns cryogen-core.file-test-tools
(:require [clojure.java.io :as io]
[schema.core :as s]))
(defn verify-file-exists [path]
(.exists (io/file path)))
(defn verify-dir-exists [path]
(and (verify-file-exists path)
(.isDirectory (io/file path))))
(defn filter-object
[e]
{:path (:path e)
:source-type (:source-type e)
:resource-type (:resource-type e)})

View file

@ -0,0 +1,60 @@
; Copyright (c) meissa. All rights reserved.
; The use and distribution terms for this software are covered by the
; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
; which can be found in the file epl-v10.html at the root of this distribution.
; By using this software in any fashion, you are agreeing to be bound by
; the terms of this license.
; You must not remove this notice, or any other, from this software.
(ns cryogen-core.new-io-test
(:require [clojure.test :refer :all]
[schema.core :as s]
[cryogen-core.file-test-tools :as ftt]
[cryogen-core.new-io :as sut]))
(s/set-fn-validation! true)
(def theme "bootstrap4-test")
(def target "target/tmp")
(deftest test-get-distinct-markup-dirs
(is (=
["test_pages"
"test_pages/home"
"test_posts"
"test_posts/home"]
(sort (map :path
(sut/get-distinct-markup-dirs
"not-existing-get-from-cp"
"test_posts" "test_pages"
""))))))
(deftest test-create-dirs-from-markup-folders!
(is (do
(sut/delete-resource-recursive! (str target "2"))
(sut/create-dirs-from-markup-folders!
"not-existing-get-from-cp" "test_posts" "test_pages"
(str target "2") "")
(and (ftt/verify-dir-exists
(str (str target "2") "/test_pages"))
(ftt/verify-dir-exists
(str (str target "2") "/test_posts"))
(ftt/verify-dir-exists
(str (str target "2") "/test_pages/home"))))))
(deftest test-copy-resources-from-theme! (is (do
(sut/delete-resource-recursive! target)
(sut/copy-resources-from-theme! "./" theme target "")
(and (ftt/verify-dir-exists
(str target "/js"))
(ftt/verify-file-exists
(str target "/js/dummy.js"))
(ftt/verify-dir-exists
(str target "/js/subdir"))
(ftt/verify-file-exists
(str target "/js/subdir/subdummy.js"))
(ftt/verify-file-exists
(str target "/css/dummy.css"))
(ftt/verify-file-exists
(str target "/404.html"))))))