From f99398380acbf38d95d7eab7d9fecab5e3af5065 Mon Sep 17 00:00:00 2001 From: Julien Marquet Date: Sun, 24 Apr 2022 18:43:37 +0200 Subject: [PATCH] nix x hakyll --- default.nix | 27 +++++++++++++++++++++++++++ release.nix | 8 +++++--- shell.nix | 1 + src/index.html | 9 +++++++++ ssg/default.nix | 3 +++ ssg/src/Main.hs | 10 ++++++++++ ssg/ssg.cabal | 12 ++++++++++++ 7 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 default.nix create mode 100644 shell.nix create mode 100644 src/index.html create mode 100644 ssg/default.nix create mode 100644 ssg/src/Main.hs create mode 100644 ssg/ssg.cabal diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..b9f9104 --- /dev/null +++ b/default.nix @@ -0,0 +1,27 @@ +{ pkgs ? import {} }: +rec { + ssg = import ./ssg { inherit pkgs; }; + + shell = pkgs.haskellPackages.shellFor { + withHoogle = true; + packages = p: [ ssg ]; + buildInputs = [ + ssg + pkgs.haskellPackages.cabal-install + pkgs.haskellPackages.haskell-language-server + pkgs.haskellPackages.cabal2nix + ]; + }; + + site = pkgs.stdenv.mkDerivation { + name = "recursorwf"; + src = ./src; + buildPhase = '' + ${ssg}/bin/ssg build + ls + ''; + installPhase = '' + mv _site $out + ''; + }; +} diff --git a/release.nix b/release.nix index 8c1db69..84b8cfc 100644 --- a/release.nix +++ b/release.nix @@ -1,4 +1,6 @@ -let pkgs = import {}; in -{ - inherit (pkgs) hello; +let + pkgs = import {}; + site = (import ./default.nix { inherit pkgs; }).site; +in { + site = site; } diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..82fb296 --- /dev/null +++ b/shell.nix @@ -0,0 +1 @@ +(import ./default.nix {}).shell diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..13e04db --- /dev/null +++ b/src/index.html @@ -0,0 +1,9 @@ + + + + + + + recursor.wf + + diff --git a/ssg/default.nix b/ssg/default.nix new file mode 100644 index 0000000..0033d1a --- /dev/null +++ b/ssg/default.nix @@ -0,0 +1,3 @@ +{ pkgs ? import {} }: +pkgs.haskellPackages.callCabal2nix "ssg" + (pkgs.lib.sourceByRegex ./. [ "^ssg\.cabal$" "^src.*" ]) {} diff --git a/ssg/src/Main.hs b/ssg/src/Main.hs new file mode 100644 index 0000000..d51ea42 --- /dev/null +++ b/ssg/src/Main.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Hakyll + +main :: IO () +main = hakyll $ do + match "index.html" $ do + route idRoute + compile copyFileCompiler + diff --git a/ssg/ssg.cabal b/ssg/ssg.cabal new file mode 100644 index 0000000..f7b6c39 --- /dev/null +++ b/ssg/ssg.cabal @@ -0,0 +1,12 @@ +cabal-version: 2.4 +name: ssg +version: 0.1.0.0 + +executable ssg + main-is: Main.hs + hs-source-dirs: src + build-depends: base >= 4.14 + , hakyll + , pandoc + default-language: Haskell2010 +