From 850b1a5717417dd30893e99412ffff167cae6fac Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@hesge.ch>
Date: Sun, 15 Nov 2020 00:16:02 +0100
Subject: [PATCH] lets see how it goes

---
 .gitlab-ci.yml            |  6 ++++-
 hakyll-bootstrap/404.html |  9 ++++++++
 hakyll-bootstrap/Main.hs  | 48 ++++++++++++++++++++-------------------
 hakyll-bootstrap/Makefile | 10 ++++++--
 4 files changed, 47 insertions(+), 26 deletions(-)
 create mode 100644 hakyll-bootstrap/404.html

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c4b3e1e..31dbd12 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
-image: omalaspinas/pandoc_website:latest
+image: omalaspinas/hakyll-bootstrap:latest
+# image: omalaspinas/pandoc_website:latest
 
 variables:
   GIT_SUBMODULE_STRATEGY: recursive
@@ -35,4 +36,7 @@ build_and_deploy:
     - rsync -avzz css ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
     - rsync -avzz figs ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
     - rsync -avzz index.html ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
+    - make build_revealjs -C hakyll-bootstrap
+    - make build -C hakyll-bootstrap
+    - make deploy -C hakyll-bootstrap
     # - blc https://malaspinas.academy -ro --exclude *.pdf --filter-level 3
diff --git a/hakyll-bootstrap/404.html b/hakyll-bootstrap/404.html
new file mode 100644
index 0000000..772f302
--- /dev/null
+++ b/hakyll-bootstrap/404.html
@@ -0,0 +1,9 @@
+---
+title: Page not found
+---
+
+<h1>Error 404</h1>
+<p>
+    The page you were looking for does not exist. You might want to
+    <a href="/">go back home</a>.
+</p>
diff --git a/hakyll-bootstrap/Main.hs b/hakyll-bootstrap/Main.hs
index 59dbe73..2089df6 100644
--- a/hakyll-bootstrap/Main.hs
+++ b/hakyll-bootstrap/Main.hs
@@ -21,11 +21,12 @@ import           Data.Maybe (isJust)
 import           Hakyll.Images ( loadImage
                                 , scaleImageCompiler
                                )
+import           System.Exit     (ExitCode)
 
 --------------------------------------------------------------------------------
 -- | Entry point
 main :: IO ()
-main = hakyllWith cfg $ do
+main = hakyllWith config $ do
     -- Resize images
     match "img/thumbnails/**.png" $ do
         route idRoute
@@ -58,6 +59,12 @@ main = hakyllWith cfg $ do
       route idRoute
       compile $ copyFileCompiler
 
+    -- Render the 404 page, we don't relativize URL's here.
+    match "404.html" $ do
+        route idRoute
+        compile $ pandocCompiler
+            >>= loadAndApplyTemplate "templates/page.html"    postCtx
+
     -- Phys app posts
     match "cours/isc_physics/*.markdown" $ do
         route $ setExtension "html"
@@ -337,25 +344,20 @@ pandocRevealCompiler = do
 --     makeItem $ TmpFile pdfPath
 
 
-cfg :: Configuration
-cfg = defaultConfiguration
-
--- main :: IO ()
--- main = hakyllWith cfg $ do
---   pages
---   posts
---   cours_conc
---   conc
---   cours_mti
---   mti
---   cours_phys_app
---   phys_app
---   research
---   bachelor
---   index
---   templates
---   resizeThumbnails
---   resizeLarge
---   resizeHeads
---   static
-
+--------------------------------------------------------------------------------
+config :: Configuration
+config = defaultConfiguration
+    { deploySite = deploy
+    }
+  where
+    deploy :: Configuration -> IO ExitCode
+    deploy _c = do
+        branch <- Process.readProcess
+            "git" ["rev-parse", "--abbrev-ref", "HEAD"] ""
+        case words branch of
+            ["master"] -> Process.rawSystem "rsync"
+                [ "--checksum", "-avzz"
+                , "_site/", "ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/beta/"
+                ]
+            _ -> fail $
+                "I don't know how to deploy the branch " ++ show branch
diff --git a/hakyll-bootstrap/Makefile b/hakyll-bootstrap/Makefile
index 1c0e0c9..50b5909 100644
--- a/hakyll-bootstrap/Makefile
+++ b/hakyll-bootstrap/Makefile
@@ -1,10 +1,16 @@
-watch: Main.hs cours/math_tech_info/*.md cours/isc_physics/*.md
+watch: build
+	stack exec blog -- watch
+
+deploy: build
+	stack exec blog -- deploy
+
+build: Main.hs cours/math_tech_info/*.md cours/isc_physics/*.md
 	make hakyll_gen -C cours/math_tech_info
 	make hakyll_gen -C cours/isc_physics
 	make -C cours/math_tech_info
 	make -C cours/isc_physics
 	make markdown -C cours/prog_seq/slides
-	stack build && stack exec blog -- build && stack exec blog -- watch
+	stack build && stack exec blog -- build
 
 build_revealjs:
 	cd reveal.js && npm install && npm run build && cd ..
-- 
GitLab