Skip to content

Commit 9c9cd97

Browse files
committedJan 20, 2020
Batman
This commit has no parents
0 parents  commit 9c9cd97

13 files changed

+199548
-0
lines changed
 

‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.stack-work/
2+
tsearch.cabal
3+
*~

‎Setup.hs

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import Distribution.Simple
2+
main = defaultMain

‎app/Main.hs

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
module Main where
2+
3+
import Control.Monad (when)
4+
import qualified Data.Aeson as Json
5+
import Data.Either (fromRight)
6+
import Data.Maybe (fromMaybe)
7+
import qualified System as Sys
8+
import qualified System.Environment as Env
9+
import qualified System.Exit as Exit
10+
import qualified Text.ParserCombinators.Parsec.Number as N
11+
import qualified Toolbelt
12+
import qualified Tsearch
13+
14+
dieOnLeft :: Either String a -> IO a
15+
dieOnLeft = either Exit.die pure
16+
17+
flattenModules :: [Tsearch.Module] -> [Tsearch.FunctionRecord]
18+
flattenModules ms = Tsearch.mFns =<< ms
19+
20+
parsePort :: Maybe String -> Int
21+
parsePort = fromRight 8080 . Toolbelt.regularParse N.int . fromMaybe "8080"
22+
23+
main :: IO ()
24+
main = do
25+
modulesPath <- Sys.argOr 0 "./modules.json"
26+
fns <-
27+
flattenModules <$> (dieOnLeft =<< Json.eitherDecodeFileStrict' modulesPath)
28+
when (null fns) $ Exit.die "Modules are empty"
29+
port <- parsePort <$> Env.lookupEnv "PORT"
30+
putStrLn $ "{ \"init\": \"Server starting in port " ++ show port ++ "\" }" -- JSON \o/
31+
Tsearch.serverMain fns port

0 commit comments

Comments
 (0)