mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-14 21:27:01 +02:00
This allows for showing all install errors for a package at once, rather than having to check one at a time.
54 lines
1.4 KiB
Bash
Executable file
54 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# check-install.sh
|
|
|
|
set -e
|
|
|
|
HOST_ARCH="$1"
|
|
export XBPS_TARGET_ARCH="$2"
|
|
|
|
if [ "$HOST_ARCH" != "$XBPS_TARGET_ARCH" ]; then
|
|
triplet="$(./xbps-src -a "$XBPS_TARGET_ARCH" show-var XBPS_CROSS_TRIPLET)"
|
|
CONFDIR="-C $PWD/masterdir-$HOST_ARCH/usr/$triplet/etc/xbps.d"
|
|
else
|
|
CONFDIR="-C $PWD/masterdir-$HOST_ARCH/etc/xbps.d"
|
|
fi
|
|
|
|
if ! [ -d /check-install ]; then
|
|
/bin/echo -e "\x1b[31m/check-install does not exist\x1b[0m"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p /check-install/var/db/xbps/keys
|
|
cp /var/db/xbps/keys/* /check-install/var/db/xbps/keys/
|
|
|
|
ADDREPO="--repository=hostdir/binpkgs/bootstrap
|
|
--repository=hostdir/binpkgs
|
|
--repository=hostdir/binpkgs/nonfree"
|
|
ROOTDIR="-r /check-install"
|
|
|
|
# if this fails, there were no packages built for this arch and thus no repodatas
|
|
xbps-install $ROOTDIR $ADDREPO $CONFDIR -S || exit 0
|
|
|
|
failed=()
|
|
while read -r pkg; do
|
|
for subpkg in $(xsubpkg $pkg); do
|
|
/bin/echo -e "\x1b[32mTrying to install dependents of $subpkg:\x1b[0m"
|
|
for dep in $(xbps-query $ADDREPO -RX "$subpkg"); do
|
|
ret=0
|
|
xbps-install \
|
|
$ROOTDIR $ADDREPO $CONFDIR \
|
|
-ny \
|
|
"$subpkg" "$(xbps-uhelper getpkgname "$dep")" \
|
|
|| ret="$?"
|
|
if [ "$ret" -ne 0 ]; then
|
|
/bin/echo -e "\x1b[31mFailed to install '$subpkg' and '$dep'\x1b[0m"
|
|
failed+=("Failed to install '$subpkg' and '$dep'")
|
|
fi
|
|
done
|
|
done
|
|
done < /tmp/templates
|
|
for msg in "${failed[@]}"; do
|
|
/bin/echo -e "\x1b[31m$msg\x1b[0m"
|
|
done
|
|
exit ${#failed[@]}
|