{ config, lib, pkgs, ... }: with import ; let icon = pkgs.writeText "icon" '' // // _ // .' . // '. '_ '_\/_' `_ . . \\ . . .==. ` \\' .' .\| //bd\\ \, \_'`._\\__//_.'`.; `.__ __,' \\ | | \\ | | ` | | | | |____| l42 ==' '== ''; 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 ''}' 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-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 ;; *) echo 'no mode selected' ;; esac ''; in { imports = [ # { nixpkgs.config.packageOverrides = import pkgs; krebs.enable = true; krebs.build.user = config.krebs.users.lass; krebs.build.host = {}; } # { # systemd.services.wizard = { # description = "Computer Wizard"; # wantedBy = [ "multi-user.target" ]; # serviceConfig = { # ExecStart = pkgs.writers.writeDash "wizard" '' # set -efu # cat <