forked from KptltD00M/nixy
5082521524
- Introduced `default-creds` module for managing default credentials with Umami integration. - Added `fail2ban` module for brute-force attack protection with configurable ban times. - Created `firewall` module to enable and configure basic firewall settings. - Implemented `gitea` module for self-hosted Git service with PostgreSQL backend. - Developed `glance` module for a customizable dashboard with various widgets and themes. - Added `iknowyou` module for a self-hosted password manager with production and demo environments. - Introduced `kernel-hardening` module for enhancing kernel security settings. - Created `mazanoke` module for a simple web application with Nginx integration. - Added `mealie` module for a self-hosted meal planning application. - Implemented `stirling-pdf` module for PDF generation service. - Developed `umami` module for self-hosted analytics with secret management. - Added `ssh` module for secure SSH configuration with user restrictions. - Introduced `nixy` theme for a customized aesthetic experience across services.
70 lines
1.9 KiB
Nix
70 lines
1.9 KiB
Nix
{
|
|
pkgs,
|
|
configDirectory,
|
|
}:
|
|
pkgs.writeShellScriptBin "nixy"
|
|
# bash
|
|
''
|
|
EXTRA_ARGS="''${@:2}"
|
|
|
|
function exec() {
|
|
$@
|
|
}
|
|
|
|
function ui(){
|
|
DEFAULT_ICON=""
|
|
|
|
# "icon;name;command"[]
|
|
apps=(
|
|
";Rebuild;nixy rebuild"
|
|
";Test;nixy test"
|
|
";Update;nixy update"
|
|
";Collect Garbage;nixy gc"
|
|
";Clean Boot Menu;nixy cb"
|
|
";List generation;nixy listgen"
|
|
)
|
|
|
|
# Apply default icons if empty:
|
|
for i in "''${!apps[@]}"; do
|
|
apps[i]=$(echo "''${apps[i]}" | sed 's/^;/'$DEFAULT_ICON';/')
|
|
done
|
|
|
|
fzf_result=$(printf "%s\n" "''${apps[@]}" | awk -F ';' '{print $1" "$2}' | fzf)
|
|
[[ -z $fzf_result ]] && exit 0
|
|
fzf_result=''${fzf_result/ /;}
|
|
line=$(printf "%s\n" "''${apps[@]}" | grep "$fzf_result")
|
|
command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//')
|
|
|
|
exec "$command"
|
|
exit $?
|
|
}
|
|
|
|
[[ $1 == "" ]] && ui
|
|
|
|
if [[ $1 == "rebuild" ]];then
|
|
cd ${configDirectory} && git add . && sudo nixos-rebuild switch --flake . $EXTRA_ARGS
|
|
elif [[ $1 == "test" ]];then
|
|
cd ${configDirectory} && git add . && sudo nixos-rebuild test --flake . $EXTRA_ARGS
|
|
elif [[ $1 == "update" ]];then
|
|
cd ${configDirectory} && nix flake update $EXTRA_ARGS
|
|
elif [[ $1 == "gc" ]];then
|
|
echo "Starting Nix garbage collection..."
|
|
cd ${configDirectory} && \
|
|
echo "Cleaning up system garbage..." && \
|
|
sudo nix-collect-garbage -d && \
|
|
echo "Cleaning up user garbage..." && \
|
|
nix-collect-garbage -d && \
|
|
echo "Collecting garbage from Nix store..." && \
|
|
nix-store --gc && \
|
|
echo "Optimizing Nix store..." && \
|
|
nix-store --optimise
|
|
echo "Nix garbage collection complete."
|
|
elif [[ $1 == "cb" ]];then
|
|
sudo /run/current-system/bin/switch-to-configuration boot
|
|
elif [[ $1 == "listgen" ]];then
|
|
sudo nix-env -p /nix/var/nix/profiles/system --list-generations
|
|
else
|
|
echo "Unknown argument"
|
|
fi
|
|
''
|