From 5493382a92880e646ba1707418d6b9646e1a0334 Mon Sep 17 00:00:00 2001 From: DustVoice Date: Wed, 1 Apr 2020 02:42:36 +0200 Subject: [PATCH] Rename update.sh to update --- AUR/.gitignore | 2 +- AUR/update | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100755 AUR/update diff --git a/AUR/.gitignore b/AUR/.gitignore index 38d6ba4..b1b64ed 100644 --- a/AUR/.gitignore +++ b/AUR/.gitignore @@ -1,4 +1,4 @@ /* /*/ !/.gitignore -!/update.sh +!/update diff --git a/AUR/update b/AUR/update new file mode 100755 index 0000000..29af05c --- /dev/null +++ b/AUR/update @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +verbose=false +minimal=false +update=false +noconfirm=false + +for arg in "$@"; do + if [[ $arg == "-v" ]] || [[ $arg == "--verbose" ]]; then + verbose=true + elif [[ $arg == "-m" ]] || [[ $arg == "--minimal" ]]; then + minimal=true + elif [[ $arg == "-u" ]] || [[ $arg == "--update" ]]; then + update=true + elif [[ $arg == "--noconfirm" ]]; then + noconfirm=true + elif [[ $arg == "-h" ]] || [[ $arg == "--help" ]]; then + echo "Helper script for the AUR directory, which tells you what packages need an update. +Usage: ./update.sh [options] +Options: +-v, --verbose Don't suppress the output of any command run within the script. +-m, --minimal Only show directories in need for an update. +-u, --update If an update is needed, pull the new updates, 'makepkg -si' and afterwards 'git reset HEAD --hard' and 'git clean -fdx'. + --noconfirm Pass the --noconfirm option to 'makepkg -si', if using the -u/--update option" + exit 0 + fi +done + +for dir in *; do + if [ -d "$dir" ]; then + cd $dir + if $verbose; then + git fetch --all + else + git fetch --all > /dev/null + fi + + BEHIND=$(git rev-list HEAD...origin/master --count) + if [[ $BEHIND -eq 0 ]]; then + if ! $minimal; then + echo "[ ] $(pwd) is up to date" + fi + else + echo "[X] $(pwd) is $BEHIND commits behind" + + if $update; then + if $verbose; then + git pull --all + else + git pull --all > /dev/null + fi + + if $noconfirm; then + if $verbose; then + makepkg -si --noconfirm + else + makepkg -si --noconfirm > /dev/null + fi + else + if $verbose; then + makepkg -si + else + makepkg -si > /dev/null + fi + fi + + if $verbose; then + git reset HEAD --hard + git clean -fdx + else + git reset HEAD --hard > /dev/null + git clean -fdx > /dev/null + fi + fi + fi + + cd .. + fi +done