CLI-typewriter-app/flake.nix
2025-02-12 15:06:17 -05:00

43 lines
1.5 KiB
Nix

{
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 "Dictionary lookup" \
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) WN=$(${pkgs.dialog}/bin/dialog --inputbox "enter dictionary search" 0 0 3>&1 1>&2 2>&3 3>&-) && ${pkgs.wordnet}/bin/wn $WN -over | ${pkgs.less}/bin/less ;;
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;
};
}