Back
create-dir (clj)
(source)function
(create-dir path)
(create-dir path {:keys [:posix-file-permissions]})
Creates dir using `Files#createDirectory`. Does not create parents.
Examples
babashka/scittle
(require '[babashka.fs :as fs]
'[babashka.tasks :refer [shell]])
(def html-source-dir (fs/file "resources" "public" "html"))
(def html-target-dir (fs/file "gh-pages" "html"))
(fs/create-dirs html-target-dir)
(doseq [html ["export.html" "reagent.html" "cljs-ajax.html"]]
(fs/copy (fs/file html-source-dir html) html-target-dir
{:replace-existing true}))
(def style-source-dir (fs/file "resources" "public" "css"))
(def style-target-dir (fs/file "gh-pages" "css"))
(fs/create-dirs style-target-dir)
(fs/copy "resources/public/css/style.css" style-target-dir
{:replace-existing true})
(def js-source-dir (fs/file "resources" "public" "js"))
(def js-target-dir (fs/file "gh-pages" "js"))
(fs/create-dirs js-target-dir)
(def cljs-source-dir (fs/file "resources" "public" "cljs"))
(def cljs-target-dir (fs/file "gh-pages" "cljs"))
(fs/create-dirs cljs-target-dir)
babashka/bbin
(ns babashka.bbin.scripts.local-jar
(:require [babashka.bbin.protocols :as p]
[babashka.bbin.scripts.common :as common]
[babashka.bbin.dirs :as dirs]
[babashka.bbin.util :as util]
[babashka.fs :as fs]
[clojure.string :as str]
[selmer.parser :as selmer]
[selmer.util :as selmer-util]))
(defrecord LocalJar [cli-opts coords]
p/Script
(install [_]
(fs/create-dirs (dirs/jars-dir cli-opts))
(let [file-path (str (fs/canonicalize (:script/lib cli-opts) {:nofollow-links true}))
main-ns (common/jar->main-ns file-path)
script-deps {:bbin/url (str "file://" file-path)}
header {:coords script-deps}
script-name (or (:as cli-opts) (common/file-path->script-name file-path))
cached-jar-path (fs/file (dirs/jars-dir cli-opts) (str script-name ".jar"))
script-edn-out (with-out-str
(binding [*print-namespace-maps* false]
(util/pprint header)))
template-opts {:script/meta (->> script-edn-out
str/split-lines
(map #(str common/comment-char " " %))
(str/join "\n"))
:script/main-ns main-ns
:script/jar cached-jar-path}
script-contents (selmer-util/without-escaping
(selmer/render local-jar-template-str template-opts))
script-file (fs/canonicalize (fs/file (dirs/bin-dir cli-opts) script-name)
{:nofollow-links true})]
(fs/copy file-path cached-jar-path {:replace-existing true})
(common/install-script script-name header script-file script-contents cli-opts)))
babashka/bbin
(ns babashka.bbin.scripts.http-jar
(:require [babashka.bbin.protocols :as p]
[babashka.bbin.scripts.common :as common]
[babashka.bbin.dirs :as dirs]
[babashka.bbin.util :as util]
[babashka.fs :as fs]
[babashka.http-client :as http]
[clojure.java.io :as io]
[clojure.string :as str]
[selmer.parser :as selmer]
[selmer.util :as selmer-util]))
(defrecord HttpJar [cli-opts coords]
p/Script
(install [_]
(fs/create-dirs (dirs/jars-dir cli-opts))
(let [http-url (:script/lib cli-opts)
script-deps {:bbin/url http-url}
header {:coords script-deps}
script-name (or (:as cli-opts) (common/http-url->script-name http-url))
tmp-jar-path (doto (fs/file (fs/temp-dir) (str script-name ".jar"))
(fs/delete-on-exit))
_ (io/copy (:body (http/get http-url {:as :bytes})) tmp-jar-path)
main-ns (common/jar->main-ns tmp-jar-path)
cached-jar-path (fs/file (dirs/jars-dir cli-opts) (str script-name ".jar"))
_ (fs/move tmp-jar-path cached-jar-path {:replace-existing true})
script-edn-out (with-out-str
(binding [*print-namespace-maps* false]
(util/pprint header)))
template-opts {:script/meta (->> script-edn-out
str/split-lines
(map #(str common/comment-char " " %))
(str/join "\n"))
:script/main-ns main-ns
:script/jar cached-jar-path}
script-contents (selmer-util/without-escaping
(selmer/render local-jar-template-str template-opts))
script-file (fs/canonicalize (fs/file (dirs/bin-dir cli-opts) script-name)
{:nofollow-links true})]
(common/install-script script-name header script-file script-contents cli-opts)))
babashka/tools-deps-native
(require '[babashka.fs :as fs]
'[babashka.tasks :refer [shell clojure]]
'[clojure.string :as str]
'[graalvm :refer [native-bin
extra-env
windows?]])
(fs/delete-tree "classes")
(fs/delete-tree "tools-deps-native")
(fs/create-dir "classes")
dundalek/dinodoc
(ns doc
(:require
[babashka.fs :as fs]
[clojure.java.io :as io]
[dinodoc.statecharts :as statecharts]))
(fs/delete-tree "docs")
(fs/create-dirs "docs")