on master help sign in
Merge pull request #35 from tomsmalley/tom-fix-port

Fix route config for files ending in newline

commit9fce2bd1277b762b2e75dfb2d7f146325368b1ef authorLuigy Leon <luichi.19@gmail.com> dateThu 31 May 2018, 10:57 (8 years ago) parent7dffae6129a099
3 files changed+17−3
lib/run/src/Obelisk/Run.hs+7−3 lib/selftest/obelisk-selftest.cabal+2 lib/selftest/src/Obelisk/SelfTest.hs+8
lib/run/src/Obelisk/Run.hs+7−3
@@ -48,9 +48,13 @@ run port backend frontend = do
4848 runWidget conf frontend `finally` killThread backendTid
4949
5050getConfigRoute :: IO (Maybe URI)
51−getConfigRoute = do
52− mroute <- get "common/route"
53− return $ URI.mkURI =<< mroute
51+getConfigRoute = get "common/route" >>= \case
52+ Just r -> case URI.mkURI $ T.strip r of
53+ Just route -> pure $ Just route
54+ Nothing -> do
55+ putStrLn $ "Route is invalid: " <> show r
56+ pure Nothing
57+ Nothing -> pure Nothing
5458
5559defAppUri :: URI
5660defAppUri = fromMaybe (error "defAppUri") $ URI.mkURI "http://127.0.0.1:8000"
lib/selftest/obelisk-selftest.cabal+2
@@ -11,10 +11,12 @@ library
1111 build-depends:
1212 base
1313 , containers
14+ , directory
1415 , hspec
1516 , http-client
1617 , http-types
1718 , HUnit
19+ , obelisk-run
1820 , process
1921 , network
2022 , shelly
lib/selftest/src/Obelisk/SelfTest.hs+8
@@ -8,6 +8,7 @@ import Control.Monad
88import Control.Monad.IO.Class
99import Data.Bool (bool)
1010import Data.Function (fix)
11+import Data.Maybe (isJust)
1112import Data.Semigroup ((<>))
1213import qualified Data.Set as Set
1314import Data.String
@@ -18,6 +19,7 @@ import qualified Network.HTTP.Client as HTTP
1819import qualified Network.HTTP.Types as HTTP
1920import qualified Network.Socket as Socket
2021import Shelly
22+import System.Directory (withCurrentDirectory)
2123import System.Environment
2224import System.Exit (ExitCode (..), exitWith)
2325import System.Info
@@ -28,6 +30,8 @@ import Test.Hspec
2830import Test.HUnit.Base
2931import System.Process (readProcessWithExitCode)
3032
33+import Obelisk.Run (getConfigRoute)
34+
3135data ObRunState
3236 = ObRunState_Init
3337 | ObRunState_Startup
@@ -81,6 +85,10 @@ main = do
8185 errExit False $ run "ob" ["init", "--symlink", "/dev/null"]
8286 ls tmp >>= liftIO . assertEqual "" []
8387
88+ it "produces a valid route config" $ inTmp $ \tmp -> do
89+ run "ob" ["init"]
90+ liftIO $ withCurrentDirectory (T.unpack $ toTextIgnore tmp) $ getConfigRoute `shouldNotReturn` Nothing
91+
8492 describe "ob run" $ do
8593 it "works in root directory" $ inTmp $ \_ -> do
8694 run "ob" ["init"]