/
Setup.hs
17 lines (15 loc) · 858 Bytes
/
Setup.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Distribution.PackageDescription (PackageDescription(extraSrcFiles))
import Distribution.Simple (UserHooks(buildHook))
import qualified Distribution.Simple as DS
import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
import Distribution.Simple.Setup (BuildFlags)
import qualified System.Process as Proc
import qualified System.Directory as Dir
import Control.Monad (when, void)
buildHook' :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
buildHook' packageDesc localBuildInfo userHooks buildFlags = do
exists <- Dir.doesFileExist "./app/dist/app.bundle.js"
when (not exists) $ void $ Proc.system "cd app && npm install && npm run build-js"
(buildHook DS.simpleUserHooks) packageDesc localBuildInfo userHooks buildFlags
main :: IO ()
main = DS.defaultMainWithHooks DS.simpleUserHooks{buildHook = buildHook'}