|
|
@@ -119,53 +119,54 @@
|
|
|
(.unregisterProtocol protocol "assets")))
|
|
|
|
|
|
(defn- handle-export-publish-assets [_event html custom-css-path repo-path asset-filenames]
|
|
|
- (let [app-path (. app getAppPath)
|
|
|
- asset-filenames (js->clj asset-filenames)
|
|
|
- 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")
|
|
|
+ (p/let [app-path (. app getAppPath)
|
|
|
+ asset-filenames (js->clj asset-filenames)
|
|
|
+ result (. dialog showOpenDialog (clj->js {:properties ["openDirectory" "createDirectory" "promptToCreate", "multiSelections"]}))
|
|
|
+ result (get (js->clj result) "filePaths")
|
|
|
+ root-dir (first result)]
|
|
|
+ (when root-dir
|
|
|
+ (let [static-dir (path/join root-dir "static")
|
|
|
assets-from-dir (path/join repo-path "assets")
|
|
|
assets-to-dir (path/join root-dir "assets")
|
|
|
index-html-path (path/join root-dir "index.html")]
|
|
|
(p/let [_ (. fs ensureDir static-dir)
|
|
|
_ (. fs ensureDir assets-to-dir)
|
|
|
_ (p/all (concat
|
|
|
- [(. fs writeFile index-html-path html)
|
|
|
+ [(. fs writeFile index-html-path html)
|
|
|
|
|
|
|
|
|
- (. fs copy (path/join app-path "404.html") (path/join root-dir "404.html"))]
|
|
|
+ (. fs copy (path/join app-path "404.html") (path/join root-dir "404.html"))]
|
|
|
|
|
|
- (map
|
|
|
- (fn [filename]
|
|
|
- (-> (. fs copy (path/join assets-from-dir filename) (path/join assets-to-dir filename))
|
|
|
- (p/catch
|
|
|
- (fn [e]
|
|
|
- (println (str "Failed to copy " (path/join assets-from-dir filename) " to " (path/join assets-to-dir filename)))
|
|
|
- (js/console.error e)))))
|
|
|
- asset-filenames)
|
|
|
+ (map
|
|
|
+ (fn [filename]
|
|
|
+ (-> (. fs copy (path/join assets-from-dir filename) (path/join assets-to-dir filename))
|
|
|
+ (p/catch
|
|
|
+ (fn [e]
|
|
|
+ (println (str "Failed to copy " (path/join assets-from-dir filename) " to " (path/join assets-to-dir filename)))
|
|
|
+ (js/console.error e)))))
|
|
|
+ asset-filenames)
|
|
|
|
|
|
- (map
|
|
|
- (fn [part]
|
|
|
- (. fs copy (path/join app-path part) (path/join static-dir part)))
|
|
|
- ["css" "fonts" "icons" "img" "js"])))
|
|
|
+ (map
|
|
|
+ (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 writeFile (path/join static-dir "css" "custom.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 public pages and publish assets to " root-dir " successfully")})))))))
|
|
|
|
|
|
(defn setup-app-manager!
|