Last active
April 9, 2021 08:31
-
-
Save Alex4386/2c400ef03f4e07d33bd2bb41dd0f2065 to your computer and use it in GitHub Desktop.
A shell-script based Automatic homebrew package manager updater for zsh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
brew_update_version=$(date +"%Y%m%d") | |
brew_update_version_file="$HOME/.homebrew-lastupdate" | |
brew_update_in_progress_file="$HOME/.homebrew-update-in-progress" | |
brew_upgrade_required=0 | |
test -f "$brew_update_version_file" || brew_upgrade_required=1 | |
if [[ $brew_upgrade_required -eq 0 ]]; then | |
this_brew_version=$(cat "$brew_update_version_file") | |
test "$this_brew_version" = "$brew_update_version" || brew_upgrade_required=1 | |
if [ -f "$brew_update_in_progress_file" ]; then | |
test "$this_brew_version" = "$brew_update_version" && brew_upgrade_required=0 | |
fi | |
fi | |
if [[ $brew_upgrade_required -eq 1 ]]; then | |
echo -n "[Homebrew] Would you like to update? [Y/n] " | |
read -r -k 1 option | |
[[ "$option" != $'\n' ]] && echo | |
case "$option" in | |
[yY$'\n']) brew_upgrade_required=1 ;; | |
[nN]) brew_upgrade_required=0 ;; | |
esac | |
if [[ $brew_upgrade_required -eq 0 ]]; then | |
echo -n "[Homebrew] Do you want to skip update today? [y/N] " | |
read -r -k 1 option | |
[[ "$option" != $'\n' ]] && echo | |
case "$option" in | |
[nN$'\n']) brew_skip_update=1 ;; | |
[yY]) brew_skip_update=0 ;; | |
esac | |
fi | |
if [[ $brew_skip_update -eq 1 ]]; then | |
echo -n "[Homebrew] All right! I will not ask you to update for today." | |
echo -n $brew_update_version > $brew_update_version_file | |
fi | |
fi | |
if [[ $brew_upgrade_required -eq 1 ]]; then | |
echo "[Homebrew] Updating Homebrew..." | |
echo -n $brew_update_version > $brew_update_in_progress_file | |
brew update | |
brew upgrade | |
brew cleanup | |
brew doctor | |
echo -n $brew_update_version > $brew_update_version_file | |
rm -f $brew_update_in_progress_file | |
echo | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment