summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cgi/index.hs20
-rw-r--r--flake.nix13
-rw-r--r--settlr.cabal22
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)
diff --git a/flake.nix b/flake.nix
index af1d01a..d9a18e4 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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