git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Moved config creation to Setup.hs.
commit0bafd28df2c1c9c943e6c73d32863d0e2989bdc5 authorjoneshf <jones3.hardy@gmail.com> dateTue 18 Feb 2014, 00:08 (13 years ago) parent7de366c
4 files changed+36−19
Setup.hs+25 Setup.lhs−6 psci/Main.hs+8−11 purescript.cabal+3−2
Setup.hsnew file+25
@@ -0,0 +1,25 @@
1+{-# LANGUAGE CPP #-}
2+
3+module Main where
4+
5+import Distribution.PackageDescription
6+import Distribution.Simple
7+import Distribution.Simple.LocalBuildInfo
8+import Distribution.Simple.Setup
9+
10+import System.Directory
11+import System.Environment.XDG.BaseDir
12+#if !defined(mingw32_HOST_OS) || !defined(__MINGW32__)
13+import System.Posix.Files
14+#endif
15+
16+main :: IO ()
17+main = defaultMainWithHooks $ simpleUserHooks {postInst = setupXDG}
18+
19+setupXDG :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()
20+setupXDG _ _ _ _ = do
21+ configDir <- getUserConfigDir "purescript"
22+ createDirectoryIfMissing True configDir
23+#if !defined(mingw32_HOST_OS) || !defined(__MINGW32__)
24+ setFileMode configDir ownerModes
25+#endif
Setup.lhsdeleted−6
@@ -1,6 +0,0 @@
1−#!/usr/bin/runhaskell
2−> module Main where
3−> import Distribution.Simple
4−> main :: IO ()
5−> main = defaultMain
6−
psci/Main.hs+8−11
@@ -26,7 +26,7 @@ import Data.Maybe (mapMaybe)
2626import Data.Traversable (traverse)
2727
2828import System.Console.Haskeline
29−import System.Directory (createDirectoryIfMissing, findExecutable)
29+import System.Directory (findExecutable)
3030import System.Exit
3131import System.Environment.XDG.BaseDir
3232import System.Process
@@ -36,9 +36,16 @@ import qualified Paths_purescript as Paths
3636import qualified System.IO.UTF8 as U (readFile)
3737import qualified Text.Parsec as Parsec (eof)
3838
39+getHistoryFilename :: IO FilePath
40+getHistoryFilename = getUserConfigFile "purescript" "psci_history"
41+
3942getPreludeFilename :: IO FilePath
4043getPreludeFilename = Paths.getDataFileName "prelude/prelude.purs"
4144
45+findNodeProcess :: IO (Maybe String)
46+findNodeProcess = runMaybeT . msum $ map (MaybeT . findExecutable) names
47+ where names = ["nodejs", "node"]
48+
4249options :: P.Options
4350options = P.Options True False True (Just "Main") True "PS" []
4451
@@ -117,16 +124,6 @@ loadModule moduleFile = do
117124 moduleText <- U.readFile moduleFile
118125 return . either (Left . show) Right $ P.runIndentParser "" P.parseModules moduleText
119126
120−findNodeProcess :: IO (Maybe String)
121−findNodeProcess = runMaybeT . msum $ map (MaybeT . findExecutable) names
122− where names = ["nodejs", "node"]
123−
124−getHistoryFilename :: IO FilePath
125−getHistoryFilename = do
126− purescriptConfig <- getUserConfigDir "purescript"
127− createDirectoryIfMissing True purescriptConfig
128− getUserConfigFile "purescript" "psci_history"
129−
130127main :: IO ()
131128main = do
132129 preludeFilename <- getPreludeFilename
purescript.cabal+3−2
@@ -1,7 +1,7 @@
11name: purescript
22version: 0.4.1
33cabal-version: >=1.8
4−build-type: Simple
4+build-type: Custom
55license: MIT
66license-file: LICENSE
77copyright: (c) 2013-14 Phil Freeman, (c) 2014 Gary Burgess, and other contributors
@@ -17,7 +17,8 @@ data-dir: ""
1717library
1818 build-depends: base >=4 && <5, cmdtheline -any, containers -any,
1919 directory -any, filepath -any, mtl -any, parsec -any, syb -any,
20− transformers -any, utf8-string -any, pattern-arrows -any, monad-unify >= 0.2 && < 0.3
20+ transformers -any, utf8-string -any, pattern-arrows -any, monad-unify >= 0.2 && < 0.3,
21+ xdg-basedir -any, unix -any
2122 exposed-modules: Data.Generics.Extras
2223 Language.PureScript
2324 Language.PureScript.Options