diff options
| -rw-r--r-- | cgi/index.hs | 20 | ||||
| -rw-r--r-- | flake.nix | 13 | ||||
| -rw-r--r-- | settlr.cabal | 22 |
3 files changed, 43 insertions, 12 deletions
diff --git a/cgi/index.hs b/cgi/index.hs index a15fb99..c01e79d 100644 --- a/cgi/index.hs +++ b/cgi/index.hs @@ -1,4 +1,22 @@ +{-# LANGUAGE OverloadedStrings #-} + import Settlr.Storage +import Network.CGI (runCGI, handleErrors, CGIResult, CGI, outputFPS) +import Text.Blaze.Html5 (Html, (!)) +import qualified Text.Blaze.Html5 as H +import qualified Text.Blaze.Html5.Attributes as A +import Text.Blaze.Html.Renderer.Utf8 (renderHtml) + +page :: Html +page = H.docTypeHtml $ do + H.head $ do + H.title "Test" + H.meta ! A.charset "utf-8" + H.body $ do + H.p "Hello, world!" + +cgiMain :: CGI CGIResult +cgiMain = outputFPS $ renderHtml page main :: IO () -main = putStrLn "" +main = runCGI (handleErrors cgiMain) @@ -14,15 +14,22 @@ flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; - haskell = pkgs.haskellPackages.ghcWithPackages (p: - with p; [ haskell-language-server blaze-html cgi ]); + settlr = pkgs.haskellPackages.developPackage { + root = ./.; +# modifier = drv: +# pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages; [ haskell-language-server ]); + }; shell = pkgs.mkShell { name = "settlr"; - packages = [ haskell pkgs.cabal-install ]; + inputsFrom = [ settlr ]; + packages = [ pkgs.cabal-install pkgs.haskell-language-server ]; hardeningDisable = [ "fortify" ]; }; in { + packages = { + default = settlr; + }; devShells = { default = shell; }; diff --git a/settlr.cabal b/settlr.cabal index d22d002..29c28b1 100644 --- a/settlr.cabal +++ b/settlr.cabal @@ -7,21 +7,27 @@ build-type: Simple common warnings ghc-options: -Wall +common script + import: warnings + hs-source-dirs: cgi + build-depends: base ^>=4.20.2.0, + settlr, + bytestring, + cgi, + blaze-html + default-language: Haskell2010 + + library import: warnings exposed-modules: Settlr.Storage hs-source-dirs: lib build-depends: base ^>=4.20.2.0, - text, bytestring, cgi, - blaze-builder, - blaze-markup + blaze-html default-language: Haskell2010 executable index.cgi - import: warnings - main-is: index.hs - hs-source-dirs: cgi - default-language: Haskell2010 - build-depends: base, settlr + import: script + main-is: index.hs |
