on master help sign in
skeleton: Begin using obelisk-executable-config for backend
commit400f797b050f4c93eb10e21509285bbf74bd5d5d authorLuigy Leon <luigy@outlook.com> dateTue 15 May 2018, 21:45 (8 years ago) parenteec9bd0
4 files changed+22−1
default.nix+4 skeleton/backend/backend.cabal+4 skeleton/backend/src/main.hs+13−1 skeleton/config/common/route+1
default.nix+4
@@ -73,11 +73,15 @@ let #TODO: Upstream
7373 baseName == "cabal.project.local"
7474 ));
7575
76+ executableConfig = import ./lib/executable-config { nixpkgs = pkgs; filterGitSource = cleanSource; };
77+
7678 addLibs = self: super: {
7779 obelisk-asset-manifest = self.callCabal2nix "obelisk-asset-manifest" (hackGet ./lib/asset + "/manifest") {};
7880 obelisk-asset-serve-snap = self.callCabal2nix "obelisk-asset-serve-snap" (hackGet ./lib/asset + "/serve-snap") {};
7981 obelisk-backend = self.callCabal2nix "obelisk-backend" (cleanSource ./lib/backend) {};
8082 obelisk-command = (self.callCabal2nix "obelisk-command" (cleanSource ./lib/command) {}).override { Cabal = super.Cabal_2_0_0_2; };
83+ obelisk-executable-config = executableConfig.haskellPackage self;
84+ obelisk-executable-config-inject = executableConfig.platforms.web.inject self; # TODO handle platforms.{ios,android}
8185 obelisk-run = self.callCabal2nix "obelisk-run" (cleanSource ./lib/run) {};
8286 obelisk-selftest = self.callCabal2nix "obelisk-selftest" (cleanSource ./lib/selftest) {};
8387 obelisk-snap = self.callCabal2nix "obelisk-snap" (cleanSource ./lib/snap) {};
skeleton/backend/backend.cabal+4
@@ -19,3 +19,7 @@ executable backend
1919 , backend
2020 , common
2121 , obelisk-backend
22+ , obelisk-executable-config
23+ , obelisk-executable-config-inject
24+ , text
25+ , uri-bytestring
skeleton/backend/src/main.hs+13−1
@@ -1,5 +1,17 @@
1+{-# LANGUAGE OverloadedStrings #-}
2+import Control.Exception
3+import Data.Text.Encoding
4+import Obelisk.ExecutableConfig (get)
5+import System.Environment
6+import URI.ByteString
7+
18import Backend
29
310main :: IO ()
4−main = backend
11+main = do
12+ Just route <- get "common/route"
13+ port <- case parseURI strictURIParserOptions $ encodeUtf8 route of
14+ Left err -> fail $ show err
15+ Right uri -> return $ maybe 8000 portNumber $ authorityPort =<< uriAuthority uri
16+ withArgs ["--port", show port] backend
517
skeleton/config/common/routenew file+1
@@ -0,0 +1 @@
1+http://localhost:8000