on master help sign in
add stack file
e24cb9dSönke Hahn
.gitignore+1
@@ -22,3 +22,4 @@ cabal.config
22*.aux
22*.aux
23*.hp
23*.hp
24Setup
24Setup
25+.stack-work
servant-js/servant-js.cabal+1−1
@@ -80,7 +80,7 @@ test-suite spec
80 , lens
80 , lens
81 , servant-js
81 , servant-js
82 , servant
82 , servant
83− , hspec >= 2.0
83+ , hspec >= 2.1.8
84 , hspec-expectations
84 , hspec-expectations
85 , language-ecmascript >= 0.16
85 , language-ecmascript >= 0.16
86 default-language: Haskell2010
86 default-language: Haskell2010
servant-server/test/Doctests.hs+28−18
@@ -9,23 +9,33 @@ import Test.DocTest
9main :: IO ()
9main :: IO ()
10main = do
10main = do
11 files <- find always (extension ==? ".hs") "src"
11 files <- find always (extension ==? ".hs") "src"
12− cabalMacrosFile <- getCabalMacrosFile
12+ mCabalMacrosFile <- getCabalMacrosFile
13− doctest $ [ "-isrc"
13+ doctest $ "-isrc" :
14− , "-optP-include"
14+ (maybe [] (\ f -> ["-optP-include", "-optP" ++ f]) mCabalMacrosFile) ++
15− , "-optP" ++ cabalMacrosFile
16− , "-XOverloadedStrings"
15+ "-XOverloadedStrings" :
17− , "-XFlexibleInstances"
16+ "-XFlexibleInstances" :
18− , "-XMultiParamTypeClasses"
17+ "-XMultiParamTypeClasses" :
19− , "-XDataKinds"
18+ "-XDataKinds" :
20− , "-XTypeOperators"
19+ "-XTypeOperators" :
21− ] ++ files
20+ files
22
21
23−getCabalMacrosFile :: IO FilePath
22+getCabalMacrosFile :: IO (Maybe FilePath)
24getCabalMacrosFile = do
23getCabalMacrosFile = do
24+ exists <- doesDirectoryExist "dist"
25+ if exists
26+ then do
25− contents <- getDirectoryContents "dist"
27+ contents <- getDirectoryContents "dist"
26− let rest = "build" </> "autogen" </> "cabal_macros.h"
28+ let rest = "build" </> "autogen" </> "cabal_macros.h"
27− return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
29+ whenExists $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
28− [x] -> "dist" </> x </> rest
30+ [x] -> "dist" </> x </> rest
29− [] -> "dist" </> rest
31+ [] -> "dist" </> rest
30− xs -> error $ "ran doctests with multiple dist/dist-sandbox-xxxxx's: \n"
32+ xs -> error $ "ran doctests with multiple dist/dist-sandbox-xxxxx's: \n"
31− ++ show xs ++ "\nTry cabal clean"
33+ ++ show xs ++ "\nTry cabal clean"
34+ else return Nothing
35+ where
36+ whenExists :: FilePath -> IO (Maybe FilePath)
37+ whenExists file = do
38+ exists <- doesFileExist file
39+ return $ if exists
40+ then Just file
41+ else Nothing
servant/test/Doctests.hs+26−16
@@ -9,21 +9,31 @@ import Test.DocTest
9main :: IO ()
9main :: IO ()
10main = do
10main = do
11 files <- find always (extension ==? ".hs") "src"
11 files <- find always (extension ==? ".hs") "src"
12− cabalMacrosFile <- getCabalMacrosFile
12+ mCabalMacrosFile <- getCabalMacrosFile
13− doctest $ [ "-isrc"
13+ doctest $ "-isrc" :
14− , "-optP-include"
14+ (maybe [] (\ f -> ["-optP-include", "-optP" ++ f]) mCabalMacrosFile) ++
15− , "-optP" ++ cabalMacrosFile
16− , "-XOverloadedStrings"
15+ "-XOverloadedStrings" :
17− , "-XFlexibleInstances"
16+ "-XFlexibleInstances" :
18− , "-XMultiParamTypeClasses"
17+ "-XMultiParamTypeClasses" :
19− ] ++ files
18+ files
20
19
21−getCabalMacrosFile :: IO FilePath
20+getCabalMacrosFile :: IO (Maybe FilePath)
22getCabalMacrosFile = do
21getCabalMacrosFile = do
22+ exists <- doesDirectoryExist "dist"
23+ if exists
24+ then do
23− contents <- getDirectoryContents "dist"
25+ contents <- getDirectoryContents "dist"
24− let rest = "build" </> "autogen" </> "cabal_macros.h"
26+ let rest = "build" </> "autogen" </> "cabal_macros.h"
25− return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
27+ whenExists $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
26− [x] -> "dist" </> x </> rest
28+ [x] -> "dist" </> x </> rest
27− [] -> "dist" </> rest
29+ [] -> "dist" </> rest
28− xs -> error $ "ran doctests with multiple dist/dist-sandbox-xxxxx's: \n"
30+ xs -> error $ "ran doctests with multiple dist/dist-sandbox-xxxxx's: \n"
29− ++ show xs ++ "\nTry cabal clean"
31+ ++ show xs ++ "\nTry cabal clean"
32+ else return Nothing
33+ where
34+ whenExists :: FilePath -> IO (Maybe FilePath)
35+ whenExists file = do
36+ exists <- doesFileExist file
37+ return $ if exists
38+ then Just file
39+ else Nothing
stack.yamlnew file+15
@@ -0,0 +1,15 @@
1+flags:
2+ servant-js:
3+ example: false
4+packages:
5+- servant/
6+- servant-blaze/
7+- servant-client/
8+- servant-docs/
9+- servant-examples/
10+- servant-js/
11+- servant-lucid/
12+- servant-mock/
13+- servant-server/
14+extra-deps: []
15+resolver: nightly-2015-07-24