Some checks failed
Nix Format Check / check-format (push) Has been cancelled
73 lines
2.2 KiB
Bash
Executable File
73 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source $HOME/dotfiles/bin/helpers/functions.sh
|
|
|
|
help() {
|
|
printfe "%s\n" "green" "Usage: upgrade.sh [options]"
|
|
printfe "%s\n" "green" "Options:"
|
|
printfe "%s\n" "green" " --ha, -H Upgrade Home Manager packages."
|
|
printfe "%s\n" "green" " --nix, -X Upgrade NixOS packages."
|
|
printfe "%s\n" "green" " --full-speed, -F Upgrade packages and use all available cores for compilation. (Default: 8 cores)"
|
|
printfe "%s\n" "green" " --help, -h Display this help message."
|
|
exit 0
|
|
}
|
|
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case $1 in
|
|
--ha|-H) RUN_HA=true ;;
|
|
--nix|-X) RUN_NIX=true ;;
|
|
--full-speed|-F) FULL_SPEED=true ;;
|
|
--help|-h) help ;;
|
|
*) echo "Unknown parameter passed: $1";
|
|
help ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [[ -z "$RUN_HA" && -z "$RUN_NIX" ]]; then
|
|
RUN_HA=true
|
|
RUN_NIX=true
|
|
fi
|
|
|
|
# Check if --full-speed flag is passed, otherwise use --cores 8 -j 1
|
|
if [[ "$FULL_SPEED" == true ]]; then
|
|
CORES=$(nproc)
|
|
JOBS=$(nproc)
|
|
else
|
|
CORES=8
|
|
JOBS=1
|
|
fi
|
|
|
|
printfe "%s\n" "cyan" "Limiting to $CORES cores with $JOBS jobs."
|
|
|
|
if [[ "$RUN_NIX" == true ]]; then
|
|
if command -v nixos-rebuild &> /dev/null; then
|
|
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
|
|
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
|
|
|
|
if [[ $? -ne 0 ]]; then
|
|
printfe "%s\n" "red" "Failed to upgrade NixOS packages."
|
|
exit 1
|
|
fi
|
|
else
|
|
printfe "%s\n" "red" "Skipping nixos-rebuild, NixOS is not installed."
|
|
fi
|
|
fi
|
|
|
|
if [[ "$RUN_HA" == true ]]; then
|
|
if command -v home-manager &> /dev/null; then
|
|
printfe "%s\n" "cyan" "Cleaning old backup files..."
|
|
rm -rf $HOME/.config/mimeapps.list.backup
|
|
|
|
printfe "%s\n" "cyan" "Upgrading Home Manager packages..."
|
|
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager --extra-experimental-features nix-command --extra-experimental-features flakes switch -b backup --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
|
|
|
|
if [[ $? -ne 0 ]]; then
|
|
printfe "%s\n" "red" "Failed to upgrade Home Manager packages."
|
|
exit 1
|
|
fi
|
|
else
|
|
printfe "%s\n" "red" "Home Manager is not installed."
|
|
exit 1
|
|
fi
|
|
fi
|