Start electron dev env with one cmd

Thanks @borkdude for the gist :)
This commit is contained in:
Gabriel Horner
2022-01-27 17:12:09 -05:00
parent 115b0266f5
commit 8998e9435b
2 changed files with 46 additions and 1 deletions

14
bb.edn
View File

@@ -7,4 +7,16 @@
logseq.tasks.lang/lang-missing
lang:invalid
logseq.tasks.lang/lang-invalid}}
logseq.tasks.lang/lang-invalid
dev:watch
logseq.tasks.dev/watch
dev:open-dev-electron-app
logseq.tasks.dev/open-dev-electron-app
-dev:electron-dev
{:depends [dev:watch dev:open-dev-electron-app]}
dev:electron-dev
logseq.tasks.dev/electron-dev}}

View File

@@ -0,0 +1,33 @@
(ns logseq.tasks.dev
"Tasks for development"
(:require [babashka.fs :as fs]
[babashka.tasks :refer [shell]]))
(defn watch
"Watches environment to reload cljs, css and other assets"
[]
(shell "yarn watch"))
(defn- file-modified-later-than?
[file comparison-instant]
(pos? (.compareTo (fs/file-time->instant (fs/last-modified-time file))
comparison-instant)))
;; Works whether yarn clean has been run before or not
(defn open-dev-electron-app
"Opens dev-electron-app when watch process has built main.js"
[]
(let [start-time (java.time.Instant/now)]
(dotimes [_n 1000]
(if (and (fs/exists? "static/js/main.js")
(file-modified-later-than? "static/js/main.js" start-time))
(shell "yarn dev-electron-app")
(println "Waiting for app to build..."))
(Thread/sleep 1000))))
;; Thanks to https://gist.github.com/borkdude/35bc0a20bd4c112dec2c5645f67250e3
;; for this idea
(defn electron-dev
"Start electron dev that includes watching assets and opening dev app"
[]
(shell "bb run --parallel -dev:electron-dev"))