mirror of https://github.com/Chizi123/Arch-autobuild-repo.git

Chizi123
2020-10-20 7aa5106e2bd22ce1ccdecd2d442c2a78bd8470d4
added function to check for packages in aur and in repos, also only print errors on add or build
1 files modified
46 ■■■■ changed files
main.sh 46 ●●●● patch | view | raw | blame | history
main.sh
@@ -241,6 +241,30 @@
    fi
}
#Check for packages moved to official repos or removed from the AUR
function check {
    rmlist=""
    rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq core | sort) | tr '\n' ' ')"
    rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq extra | sort) | tr '\n' ' ')"
    rmlist="$rmlist $(comm -12 <(pacman -Slq $REPONAME | sort) <(pacman -Slq community | sort) | tr '\n' ' ')"
    removed=()
    TMPFILE=$(mktemp)
    for i in $(find $BUILDDIR -mindepth 1 -maxdepth 1 -type d); do
        check_pkg $TMPFILE "$(echo $i | rev | cut -d'/' -f1 | rev)" &
    done
    wait
    echo "Merged into official repos: $rmlist"
    echo "Not in AUR: $(cat $TMPFILE | tr '\n' ' ')"
    rm -f $TMPFILE
}
function check_pkg {
    if [[ -z "$(curl -sI "https://aur.archlinux.org/packages/$2" | head -n1 | grep 200)" ]]; then
        echo "$2" >> $1
    fi
}
#Check config and create build folders
#Set variables before usage
# Usage: init
@@ -307,18 +331,22 @@
        build_all $([[ "$2" == "-f" ]] && echo "-f");;
    "remove")
        remove ${@:2};;
    "check")
        check;;
    *)
        printf "Invalid usage\nUsage: $0 init|add|build-all\n";;
        printf "Invalid usage\nUsage: $0 init|add|build-all|check\n";;
esac
# Error reporting, send email only for build-all as assuming an batch job for that
if [[ -f $REPODIR/.errors ]]; then
    ERRORS=$(cat $REPODIR/.errors | tr '\n' ' ')
    rm $REPODIR/.errors
    echo "Errors in packages: $ERRORS"
    if [[ "$EMAIL" != "" && "$1" == "build-all" ]]; then
        send_email $ERRORS
if [[ $1 == "build-all" || $1 == "add" ]]; then
    if [[ -f $REPODIR/.errors ]]; then
        ERRORS=$(cat $REPODIR/.errors | tr '\n' ' ')
        rm $REPODIR/.errors
        echo "Errors in packages: $ERRORS"
        if [[ "$EMAIL" != "" && "$1" == "build-all" ]]; then
            send_email $ERRORS
        fi
    else
        echo "All packages built successfully"
    fi
else
    echo "All packages built successfully"
fi