init
This commit is contained in:
62
makepkg-chroot.sh
Executable file
62
makepkg-chroot.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Config
|
||||
chroot_base='/var/chroot/root'
|
||||
|
||||
# Functions
|
||||
icat() {
|
||||
while read; do
|
||||
echo -e "$REPLY"
|
||||
done
|
||||
}
|
||||
|
||||
build_script() {
|
||||
icat <<- EOF
|
||||
#!/bin/sh
|
||||
|
||||
pacman -Sy &>pacman.log
|
||||
|
||||
cd '/build'; chown builder:wheel /build
|
||||
sudo -u builder PKGDEST='/pkg' makepkg -s --noconfirm -L &>makepkg.log
|
||||
|
||||
makepkg_exit="\$?"
|
||||
|
||||
case "\$makepkg_exit" in
|
||||
0) echo 'ok';;
|
||||
17) echo 'already built';;
|
||||
*) echo 'FAIL';;
|
||||
esac
|
||||
|
||||
exit "\$makepkg_exit"
|
||||
EOF
|
||||
}
|
||||
|
||||
main() {
|
||||
chroot_dir="$1"
|
||||
pkg_dest_dir="$2"
|
||||
workdir="$PWD"
|
||||
|
||||
[[ "${chroot_dir}" ]] || { usage; exit 1; }
|
||||
|
||||
/usr/local/bin/mount-chroot.sh -s "$chroot_base" -n 'chroot_build' "$chroot_dir"
|
||||
|
||||
mkdir -m777 "$chroot_dir/pkg" "$chroot_dir/build"
|
||||
|
||||
mount --bind "$workdir" "$chroot_dir/build"
|
||||
mount --bind "$pkg_dest_dir" "$chroot_dir/pkg"
|
||||
|
||||
build_script > "${chroot_dir}/build/build.sh"
|
||||
|
||||
#chmod 755 "${chroot_dir}/build/build.sh"
|
||||
chroot "${chroot_dir}" sh /build/build.sh
|
||||
|
||||
if /usr/local/bin/mount-chroot.sh -u "$chroot_dir"; then
|
||||
rm -r "${chroot_dir}"{,.work}
|
||||
else
|
||||
err "Cannot unmount $chroot_dir"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
Reference in New Issue
Block a user