From fe8925e267ef95a556a0b85f1eff7ec63a9b86b6 Mon Sep 17 00:00:00 2001 From: Solene Rapenne Date: Fri, 2 Dec 2022 20:45:13 +0100 Subject: [PATCH] add generator --- .gitignore | 1 + default.nix | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 .gitignore create mode 100644 default.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..2715090 --- /dev/null +++ b/default.nix @@ -0,0 +1,114 @@ +{system ? builtins.currentSystem}: let + pkgs = import {inherit system;}; + + issues = [ + ./issues/001.nix + ./issues/002.nix + ]; + + website = { + url = "https://localhost/"; + style = builtins.readFile ./style.html; + }; +in + pkgs.stdenv.mkDerivation rec { + name = "nixos-webzine"; + + builder = pkgs.writeShellScript "builder.sh" ( + '' + ${pkgs.busybox}/bin/mkdir -p $out + '' + + ( + pkgs.lib.concatStringsSep "\n" + (builtins.map (file: '' + ${pkgs.busybox}/bin/cp ${file}/* $out/ + '') + pages_generator) + ) + ); + + pages_generator = (builtins.map (element: let + issue = import element; + in + pkgs.writeTextDir "${issue.number}.html" '' + + + + + + + + + + + + + + + + NixOS webzine ${issue.number} + ${website.style} + + +
+ + ${ + if (builtins.length issue.news) != 0 + then '' +
+ +

News

+
    + ${pkgs.lib.concatStringsSep "\n" (builtins.map (item: '' +
  • ${item}
  • + '') + issue.news)} +
+
+ '' + else "" + } + + + ${ + if issue.tips != "" + then '' +
+ +

Tips

+ ${issue.tips} +
+ '' + else "" + } + + + ${ + if (builtins.length issue.links) != 0 + then '' + + '' + else "" + } +
+ + + + '')) + issues; + }