Public Vars

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")