|
@@ -58,37 +58,40 @@
|
|
|
(callback #js {:path path}))))
|
|
|
#(.unregisterProtocol protocol "assets"))
|
|
|
|
|
|
-(defn- handle-export-publish-assets [_event html]
|
|
|
+(defn- handle-export-publish-assets [_event html custom-css-path]
|
|
|
(let [app-path (. app getAppPath)
|
|
|
paths (js->clj (. dialog showOpenDialogSync (clj->js {:properties ["openDirectory" "createDirectory" "promptToCreate", "multiSelections"]})))]
|
|
|
(when (seq paths)
|
|
|
(let [root-dir (first paths)
|
|
|
static-dir (path/join root-dir "static")
|
|
|
- path (path/join root-dir "index.html")]
|
|
|
+ index-html-path (path/join root-dir "index.html")]
|
|
|
(p/let [_ (. fs ensureDir static-dir)
|
|
|
_ (p/all (concat
|
|
|
- [(. fs writeFile path html)
|
|
|
+ [(. fs writeFile index-html-path html)
|
|
|
+
|
|
|
(. fs copy (path/join app-path "404.html") (path/join root-dir "404.html"))]
|
|
|
|
|
|
(map
|
|
|
- (fn [part]
|
|
|
- (. fs copy (path/join app-path part) (path/join static-dir part)))
|
|
|
- ["css" "fonts" "icons" "img" "js"])))
|
|
|
+ (fn [part]
|
|
|
+ (. fs copy (path/join app-path part) (path/join static-dir part)))
|
|
|
+ ["css" "fonts" "icons" "img" "js"])))
|
|
|
+ custom-css (. fs readFile custom-css-path)
|
|
|
+ _ (. fs appendFile (path/join static-dir "css" "style.css") custom-css)
|
|
|
js-files ["main.js" "code-editor.js" "excalidraw.js"]
|
|
|
_ (p/all (map (fn [file]
|
|
|
(. fs removeSync (path/join static-dir "js" file)))
|
|
|
- js-files))
|
|
|
+ js-files))
|
|
|
_ (p/all (map (fn [file]
|
|
|
(. fs moveSync
|
|
|
(path/join static-dir "js" "publishing" file)
|
|
|
(path/join static-dir "js" file)))
|
|
|
- js-files))
|
|
|
+ js-files))
|
|
|
_ (. fs removeSync (path/join static-dir "js" "publishing"))
|
|
|
;; remove source map files
|
|
|
;; TODO: ugly, replace with ls-files and filter with ".map"
|
|
|
_ (p/all (map (fn [file]
|
|
|
(. fs removeSync (path/join static-dir "js" (str file ".map"))))
|
|
|
- ["main.js" "code-editor.js" "excalidraw.js" "age-encryption.js"]))]
|
|
|
+ ["main.js" "code-editor.js" "excalidraw.js" "age-encryption.js"]))]
|
|
|
(. dialog showMessageBox (clj->js {:message (str "Export publish assets to " root-dir " successfully")})))))))
|
|
|
|
|
|
(defn setup-app-manager!
|