From 180366625998e84eb76c078780beb6404e232bda Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Thu, 30 Jan 2020 03:48:54 +0100
Subject: [PATCH 1/3] l: rename iso to wizard

---
 .../{iso/default.nix => wizard/config.nix}    | 151 +++++++++++++-----
 lass/1systems/{iso => wizard}/generate-iso.sh |   2 +-
 lass/1systems/wizard/test.nix                 |  10 ++
 3 files changed, 124 insertions(+), 39 deletions(-)
 rename lass/1systems/{iso/default.nix => wizard/config.nix} (52%)
 rename lass/1systems/{iso => wizard}/generate-iso.sh (55%)
 create mode 100644 lass/1systems/wizard/test.nix

diff --git a/lass/1systems/iso/default.nix b/lass/1systems/wizard/config.nix
similarity index 52%
rename from lass/1systems/iso/default.nix
rename to lass/1systems/wizard/config.nix
index a77a74fbe..8f9db7d3c 100644
--- a/lass/1systems/iso/default.nix
+++ b/lass/1systems/wizard/config.nix
@@ -1,42 +1,118 @@
-{ config, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 with import <stockholm/lib>;
 
 let
 
-  wizard = pkgs.writers.writeBash "wizard" ''
-    shopt -s extglob
+  icon = pkgs.writeText "icon" ''
+                    //
+                    //
+                  _ //
+               .' . // '.
+              '_ '_\/_'  `_
+              .  . \\  .  .
+             .==. ` \\' .'
+      .\|   //bd\\   \,
+      \_'`._\\__//_.'`.;
+        `.__      __,' \\
+            |    |      \\
+            |    |       `
+            |    |
+            |    |
+            |____|
+    l42    =='  '==
+  '';
 
-    echo -n '
+  messenger = pkgs.writeText "message" ''
+                                 .
+                              | \/|
+      (\   _                  ) )|/|
+          (/            _----. /.'.'
+    .-._________..      .' @ _\  .'
+    '.._______.   '.   /    (_| .')
+      '._____.  /   '-/      | _.'
+       '.______ (         ) ) \
+         '..____ '._       )  )
+            .' __.--\  , ,  // ((
+            '.'  mrf|  \/   (_.'(
+                    '   \ .'
+                     \   (
+                      \   '.
+                       \ \ '.)
+                        '-'-'
+  '';
+
+  waiting = pkgs.writeText "waiting" ''
+                             Z
+                       Z
+                    z
+                  z
+              * '
+             / \
+            /___\
+           ( - - )
+           )  L  (           .--------------.
+         __()(-)()__      | \              |
+      .~~  )()()()  ~.    |  .             :
+     /      )()()     `   |   `-.__________)
+    |        )()  ~       |  :             :
+    |         )           |  :  |
+    |    _                |     |   [ ##   :
+     \    ~~-.            |  ,   oo_______.'
+      `_   ( \) _____/~~~~ `--___
+      | ~`-)  ) `-.   `---   ( - a:f -
+      |   '///`  | `-.
+      |     | |  |    `-.
+      |     | |  |       `-.
+      |     | |\ |
+      |     | | \|
+       `-.  | |  |
+          `-| '
+  '';
+
+  wizard = pkgs.writers.writeDash "wizard" ''
+    cat ${icon}
+
+    echo -n '${''
       welcome to the computer wizard
       first we will check for internet connectivity
-      (press enter to continue)
-    '
-    read -n 1 -s
-    if ! ping -c1 lassul.us; then
-      echo 'no internet detectio, you will have to provide credentials'
-      read -n 1 -s
-      nmtui
-    fi
 
-    # ping -c1 lassuls.us || ${pkgs.writeDash "nm-dmenu" ''
-    #   set -x
-    #   export PATH=$PATH:${pkgs.dmenu}/bin:${pkgs.networkmanagerapplet}/bin
-    #   exec ${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu "$@"
-    # ''}
+    ''}'
 
-    mode=$(echo -n '
-    1. help of the wizard
-    2. let the wizard watch and help if needed
-    3. I will do it alone
-    ' | ${pkgs.fzf}/bin/fzf --reverse)
+    read -p '(press enter to continue...)' key
+    until ping -c1 8.8.8.8; do
+      ${pkgs.nm-dmenu}/bin/nm-dmenu
+    done
+
+    mode=$(echo -n '${''
+      1. Help of the wizard
+      2. Install NixOS
+      3. I know what I need to do
+    ''}' | ${pkgs.fzf}/bin/fzf --reverse)
     case "$mode" in
       1*)
         echo 'mode_1' > /tmp/mode
+        clear
+        echo 'waiting for the messenger to reach the wizard'
+        cat ${messenger}
+
+        # get pubkeys
+        mkdir -p /root/.ssh/
+        touch /root/.ssh/authorized_keys
+        curl -Ss 'https://lassul.us/mors.pub' >> /root/.ssh/authorized_keys
+        curl -Ss 'https://lassul.us/blue.pub' >> /root/.ssh/authorized_keys
+        curl -Ss 'https://lassul.us/yubi.pub' >> /root/.ssh/authorized_keys
+
+        # write via irc
         systemctl start hidden-ssh-announce.service
-        tmux new -s help
+        tmux new-session -s help ${pkgs.writers.writeDash "waiting" ''
+          cat ${waiting}
+          read -p 'waiting for the wizard to wake up' key
+          ${pkgs.bashInteractive}/bin/bash
+        ''}
         ;;
       2*)
         echo 'mode_2' > /tmp/mode
+        ${pkgs.nixos-installer}/bin/nixos-installer
         ;;
       3*)
         echo 'mode_3' > /tmp/mode
@@ -52,6 +128,7 @@ in {
     <stockholm/krebs>
     <stockholm/lass/3modules>
     <stockholm/lass/2configs/vim.nix>
+    # <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-base.nix>
     {
       nixpkgs.config.packageOverrides = import <stockholm/lass/5pkgs> pkgs;
       krebs.enable = true;
@@ -86,14 +163,14 @@ in {
   networking.hostName = "wizard";
   nixpkgs.config.allowUnfree = true;
 
-  users.extraUsers = {
-    root = {
-      openssh.authorizedKeys.keys = [
-        config.krebs.users.lass.pubkey
-        config.krebs.users.lass-mors.pubkey
-      ];
-    };
-  };
+  # users.extraUsers = {
+  #   root = {
+  #     openssh.authorizedKeys.keys = [
+  #       config.krebs.users.lass.pubkey
+  #       config.krebs.users.lass-mors.pubkey
+  #     ];
+  #   };
+  # };
 
   environment.systemPackages = with pkgs; [
   #stockholm
@@ -120,16 +197,12 @@ in {
     aria2
 
   #neat utils
-    dmenu
+    chntpw
     hashPassword
     krebspaste
     pciutils
-    pop
     psmisc
-    q
-    rs
     tmux
-    untilport
     usbutils
 
   #unpack stuff
@@ -141,6 +214,8 @@ in {
     ddrescue
     ntfs3g
     dosfstools
+
+    nixos-installer
   ];
 
   environment.extraInit = ''
@@ -193,10 +268,10 @@ in {
   krebs.hidden-ssh = {
     enable = true;
     channel = "##lassulus-wizard";
-
+    message = "lassulus: torify sshn root@";
   };
   systemd.services.hidden-ssh-announce.wantedBy = mkForce [];
-  services.mingetty.autologinUser = "root";
+  services.mingetty.autologinUser = lib.mkForce "root";
 
   nixpkgs.config.packageOverrides = super: {
     dmenu = pkgs.writeDashBin "dmenu" ''
diff --git a/lass/1systems/iso/generate-iso.sh b/lass/1systems/wizard/generate-iso.sh
similarity index 55%
rename from lass/1systems/iso/generate-iso.sh
rename to lass/1systems/wizard/generate-iso.sh
index 3179b31c1..6c8f1532e 100755
--- a/lass/1systems/iso/generate-iso.sh
+++ b/lass/1systems/wizard/generate-iso.sh
@@ -4,4 +4,4 @@
 set -xefu
 
 WD=$(dirname "$0")
-nixos-generate -I stockholm="$WD"/../../.. -c "$WD"/default.nix -f install-iso
+nixos-generate -I stockholm="$WD"/../../.. -c "$WD"/config.nix -f install-iso
diff --git a/lass/1systems/wizard/test.nix b/lass/1systems/wizard/test.nix
new file mode 100644
index 000000000..c7a27102a
--- /dev/null
+++ b/lass/1systems/wizard/test.nix
@@ -0,0 +1,10 @@
+{ config, lib, pkgs, ... }:
+{
+  imports = [
+    ./default.nix
+  ];
+  virtualisation.emptyDiskImages = [
+    8000
+  ];
+  virtualisation.memorySize = 1024;
+}

From dae6e5380754eeb7db5789a14af22d88245fee02 Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Mon, 10 Feb 2020 13:24:11 +0100
Subject: [PATCH 2/3] Revert "l hilum.r: get autoiso.cfg easier via git"

This reverts commit 472b52e98a2d36604c7f090b6e73fb2ee5b83796.
---
 lass/1systems/hilum/config.nix | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lass/1systems/hilum/config.nix b/lass/1systems/hilum/config.nix
index 470dd3aff..7a506591b 100644
--- a/lass/1systems/hilum/config.nix
+++ b/lass/1systems/hilum/config.nix
@@ -21,7 +21,14 @@
         source /grub/autoiso.cfg
       }
     '';
-    extraFiles."/grub/autoiso.cfg" = "${pkgs.grub2.src}/docs/autoiso.cfg";
+    extraFiles."/grub/autoiso.cfg" = (pkgs.stdenv.mkDerivation {
+      name = "autoiso.cfg";
+      src = pkgs.grub2.src;
+      phases = [ "unpackPhase" "installPhase" ];
+      installPhase = ''
+        cp docs/autoiso.cfg $out
+      '';
+    });
   };
 
   services.logind.lidSwitch = "ignore";

From e82a2561e0a1884f5596a1f093daf27e4ba7e471 Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Tue, 11 Feb 2020 19:46:59 +0100
Subject: [PATCH 3/3] nixpkgs: eb65d1d -> c49da64

---
 krebs/nixpkgs.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/krebs/nixpkgs.json b/krebs/nixpkgs.json
index 4ab0e86d4..769bacbe0 100644
--- a/krebs/nixpkgs.json
+++ b/krebs/nixpkgs.json
@@ -1,7 +1,7 @@
 {
   "url": "https://github.com/NixOS/nixpkgs-channels",
-  "rev": "eb65d1dae626f4b149566c4cbccdad7ec24af189",
-  "date": "2020-01-13T10:34:45+00:00",
-  "sha256": "0zl4zakmw2s7gnkc2bmnjl71xg55n0kqrcm834kjq49lwwmdk225",
+  "rev": "c49da6435f314e04fc58ca29807221817ac2ac6b",
+  "date": "2020-02-07T12:52:16+01:00",
+  "sha256": "17zsqhaf098bvcfarnq0h9601z6smkfd1kz1px6xfg6xqfmr80r7",
   "fetchSubmodules": false
 }