kiss/contrib/kiss-chbuild
2020-05-15 09:58:16 +03:00

69 lines
1.7 KiB
Bash
Executable File

#!/bin/sh -e
# Create/destroy temporary chroots
log() {
printf '\033[31;1m->\033[m %s.\n' "$@"
}
die() {
rm -f kiss-chroot.tar.xz kiss-chroot.tar.xz.sha256
log "$@"
log "Re-run 'kiss-chbuild' to try again."
exit 1
}
sh256() {
# There's no standard utility to generate sha256 checksums.
# This is a simple wrapper around sha256sum, sha256, shasum
# and openssl which will use whatever is available.
#
# All utilities must match 'sha256sum' output.
#
# Example: '<checksum> <file>'
[ -e "$1" ] || return 0
hash=$(sha256sum "$1" ||
sha256 -r "$1" ||
openssl dgst -sha256 -r "$1" ||
shasum -a 256 "$1")
printf '%s %s\n' "${hash%% *}" "$1"
} 2>/dev/null
cd "${cac_dir:=$KISS_ROOT${XDG_CACHE_HOME:-$HOME/.cache}/kiss}"
url=https://github.com/kisslinux/repo/releases/download/1.10.0/
[ -f kiss-chroot.tar.xz ] || {
log "Downloading chroot tarball"
curl -OL "$url/kiss-chroot.tar.xz" ||
die "Failed to download kiss-chroot.tar.xz"
}
[ -f kiss-chroot.tar.xz.sha256 ] || {
log "Downloading checksums"
curl -OL "$url/kiss-chroot.tar.xz.sha256" ||
die "Failed to download kiss-chroot.tar.xz.sha256"
}
log "Verifying checksums"
sh256 kiss-chroot.tar.xz | diff - kiss-chroot.tar.xz.sha256 ||
die "Checksum verification failed."
[ -d kiss-chroot ] || {
log "Extracting chroot"
tar xf kiss-chroot.tar.xz ||
die "Failed to extract tarball"
}
log "Creating temporary chroot"
cp -a kiss-chroot "chroot-$$"
log "Installing any arguments"
[ ! "$1" ] || KISS_ROOT=$PWD/chroot-$$ kiss i "$@"
log "Entering chroot"
su -c "kiss-chroot chroot-$$; rm -rf chroot-$$"