rebuild: add better higan install scripting

master
an 2019-05-15 19:57:21 -04:00
parent da2afa86c9
commit 0e40cde4fe
1 changed files with 51 additions and 30 deletions

View File

@ -19,8 +19,7 @@ all_pkgs=(
gopherus gopherus
gvim-git gvim-git
gzdoom-legacy gzdoom-legacy
higan-bsnes higan
higan_v106-source
maxcso maxcso
mednaffe mednaffe
megatools megatools
@ -53,42 +52,50 @@ declare -A options=(
["mozc"]="--asdeps" ["mozc"]="--asdeps"
["vim-runtime-git"]="--asdeps" ["vim-runtime-git"]="--asdeps"
["higan_v106-source"]="--is-higan" ["higan"]="--handle Higan --url https://gitlab.com/higan/higan.git/"
["mupen64plus-noncore-plugins-git"]="--no-pull -f" ["mupen64plus-noncore-plugins-git"]="--no-pull -f"
["ppsspp-git"]="--install-as ppsspp-git" ["ppsspp-git"]="--install-as ppsspp-git"
) )
pkg_ver() { pkg_ver() {
sed '/^pkgver\=/!d;s/pkgver\=\(.*\)/\1/' PKGBUILD sed '/^pkgver\=/!d;s/pkgver\=\(.*\)/\1/' PKGBUILD
} }
exit_on_err() {
local res=$1
if (( $res ))
then
echo "error in rebuild, aborting"
exit $res
fi
}
higan_make() {
make -j12 -C $@ uninstall
make -j12 -C $@ clean; exit_on_err $?
make -j12 -C $@ all; exit_on_err $?
make -j12 -C $@ install; exit_on_err $?
}
build_package() { build_package() {
cd ~/bin cd ~/bin
local pkg=$1 local pkg=$1
shift shift
if [[ ! -d ~/bin/$pkg ]] local special_handling="None"
then
git clone https://aur.archlinux.org/$pkg.git
fi
cd $pkg
local special_handling
local no_pull local no_pull
local install_as local install_as
local makepkg_args="-srLcCf --noconfirm" local makepkg_args="-srLcCf --noconfirm"
local pull_url="https://aur.archlinux.org/$pkg.git"
while (( $# )) while (( $# ))
do do
case $1 in case $1 in
--is-higan) --handle)
special_handling=1 special_handling=$2
shift shift 2
;;
cd higan --url)
make clean pull_url=$2
make -j12 shift 2
make install
;; ;;
--no-pull) --no-pull)
no_pull=1 no_pull=1
@ -109,37 +116,51 @@ build_package() {
esac esac
done done
if [[ $special_handling ]] if [[ ! -d ~/bin/$pkg ]]
then then
return git clone $pull_url
fi fi
cd $pkg
if [[ ! $no_pull ]] if [[ ! $no_pull ]]
then then
git pull git pull
fi fi
case $special_handling in
None)
;;
Higan)
git fetch --tags
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
higan_make higan target=higan
higan_make higan target=bsnes
higan_make icarus
make -j12 -C shaders install
return
;;
*)
echo "incorrect handler ($special_handling), aborting"
exit 1
;;
esac
if [[ ! $install_as ]] if [[ ! $install_as ]]
then then
makepkg_args="$makepkg_args -i" makepkg_args="$makepkg_args -i"
fi fi
local pkgver
makepkg $makepkg_args makepkg $makepkg_args
exit_on_err $?
local res=$? local pkgver
if (( $res ))
then
echo "error in rebuild, aborting"
exit $res
fi
if [[ $install_as ]] if [[ $install_as ]]
then then
pkgver=$(pkg_ver) pkgver=$(pkg_ver)
sudo pacman --noconfirm --needed -U $install_as-$pkgver*.pkg.tar sudo pacman --noconfirm --needed -U $install_as-$pkgver*.pkg.tar
exit_on_err $?
fi fi
} }
main() { main() {