all_pkgs=( cef-standard cereal chocolate-doom chromium-vaapi-bin chromium-widevine clementine-qt5-git desmume-git dolphin-emu-git eternity-engine-git fceux-git gdcc gvim-git gzdoom-legacy higan-bsnes higan_v106-source libsodium-git mednaffe megatools mgba-git mupen64plus-git mupen64plus-gui-git mupen64plus-noncore-plugins-git obs-linuxbrowser-bin obs-studio-git pcsx2-git ppsspp-git prboom-plus ripcord rpcs3-git sharenix-git slade squirrel-sql vim-runtime-git xf86-input-xwiimote-git xf86-video-amdgpu-git xwiimote-git zdoom ) declare -A options=( ["cef-standard"]="--asdeps" ["cereal"]="--asdeps" ["higan_v106-source"]="--is-higan" ["libsodium-git"]="--asdeps" ["mupen64plus-noncore-plugins-git"]="--no-pull -f" ["ppsspp-git"]="--install-as ppsspp-git" ["vim-runtime-git"]="--asdeps" ) pkg_ver() { sed '/^pkgver\=/!d;s/pkgver\=\(.*\)/\1/' PKGBUILD } build_package() { cd ~/bin local pkg=$1 shift if [[ ! -d ~/bin/$pkg ]] then git clone https://aur.archlinux.org/$pkg.git fi cd $pkg local special_handling local no_pull local install_as local makepkg_args="-srLcCf --noconfirm" while (( $# )) do case $1 in --is-higan) special_handling=1 shift cd higan make clean make -j12 make install ;; --no-pull) no_pull=1 shift ;; --install-as) install_as=$2 shift 2 ;; --asdeps|--skipinteg|-f) makepkg_args="$makepkg_args $1" shift ;; *) echo "error in rebuild configuration ($1), aborting" exit 1 ;; esac done if [[ $special_handling ]] then return fi if [[ ! $no_pull ]] then git pull fi if [[ ! $install_as ]] then makepkg_args="$makepkg_args -i" fi local pkgver makepkg $makepkg_args local res=$? if (( $res )) then echo "error in rebuild, aborting" exit $res fi if [[ $install_as ]] then pkgver=$(pkg_ver) sudo pacman --noconfirm --needed -U $install_as-$pkgver*.pkg.tar.xz fi } main() { local pkg local pkgs if (( $# )) then pkgs=$@ else pkgs=${all_pkgs[*]} fi for pkg in $pkgs do build_package $pkg ${options[$pkg]} done } main $@ ## EOF