{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs }: let pkgs = nixpkgs.legacyPackages.x86_64-linux; writer-menu = pkgs.writeShellScriptBin "writer-menu" '' IP=$(${pkgs.hostname-debian}/bin/hostname -I) while true do ${pkgs.dialog}/bin/dialog --msgbox "Welcome to the Writer App Main Menu" 0 0 APP=$(${pkgs.dialog}/bin/dialog --title "please select a option:" --menu "Apps:" 0 0 0 \ 1 "Word Processor" \ 2 "Spread Sheet" \ 3 "Connect to network" \ 4 "Share Files" \ 5 "Terminal" \ 3>&1 1>&2 2>&3 3>&-) case $APP in 1) ${pkgs.wordgrinder}/bin/wordgrinder ;; 2) SC=$(${pkgs.dialog}/bin/dialog --inputbox "enter path for spread sheet" 0 0 3>&1 1>&2 2>&3 3>&-) && ${pkgs.sc}/bin/sc $SC ;; 3) ${pkgs.networkmanager}/bin/nmtui ;; 4) ${pkgs.dialog}/bin/dialog --msgbox "open with a IP address: $IP with port: 8080, press enter to launch" 0 0 && ${pkgs.toybox}/bin/clear && echo "To Exit: Ctrl+C" && ${pkgs.filebrowser}/bin/filebrowser -a 0.0.0.0 --noauth ;; 5) ${pkgs.toybox}/bin/clear ; exit ;; *) ${pkgs.toybox}/bin/clear ; exit ;; esac done ''; in { packages.x86_64-linux.writer-menu = writer-menu; }; }