Files
nixos-config/modules/system/phoenix/default.nix
2025-02-12 15:57:42 -06:00

85 lines
3.0 KiB
Nix

{ config, lib, pkgs, ... }:
{
options = {
systemSettings = {
dotfilesDir = lib.mkOption {
default = "/etc/nixos";
description = "Absolute path to the dotfiles directory";
type = lib.types.path;
};
secretsFlakeDir = lib.mkOption {
default = "/etc/nixos.secrets";
description = "Absolute path to my secrets flake";
type = lib.types.path;
};
};
};
config = {
environment.systemPackages = with pkgs; [
attic-client
(pkgs.writeScriptBin "phoenix" ''
if [ "$1" = "sync" ]; then
if [ "$#" = 1 ]; then
${config.systemSettings.dotfilesDir}/scripts/sync.sh;
exit 0;
fi
elif [ "$1" = "refresh" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'refresh' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/sync-posthook.sh;
exit 0;
elif [ "$1" = "update" ]; then
${config.systemSettings.dotfilesDir}/scripts/update.sh "''${@:2}";
exit 0;
elif [ "$1" = "upgrade" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'upgrade' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/upgrade.sh;
exit 0;
elif [ "$1" = "pull" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'pull' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/pull.sh;
exit 0;
elif [ "$1" = "build" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'pull' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/build.sh;
exit 0;
elif [ "$1" = "harden" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'harden' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/harden.sh;
exit 0;
elif [ "$1" = "soften" ]; then
if [ "$#" -gt 1 ]; then
echo "Warning: The 'soften' command has no subcommands (no $2 subcommand)";
fi
${config.systemSettings.dotfilesDir}/scripts/soften.sh;
exit 0;
elif [ "$1" = "gc" ]; then
if [ "$#" -gt 2 ]; then
echo "Warning: The 'gc' command only accepts one argument (collect_older_than)";
fi
if [ "$2" = "full" ]; then
sudo nix-collect-garbage --delete-old;
nix-collect-garbage --delete-old;
elif [ "$2" ]; then
sudo nix-collect-garbage --delete-older-than $2;
nix-collect-garbage --delete-older-than $2;
else
sudo nix-collect-garbage --delete-older-than 30d;
nix-collect-garbage --delete-older-than 30d;
fi
fi
'')
];
};
}