kiss/contrib/kiss-chbuild

69 lines
1.7 KiB
Plaintext
Raw Normal View History

2020-01-20 17:52:40 -07:00
#!/bin/sh -e
2020-05-01 00:07:20 -06:00
# Create/destroy temporary chroots
2020-01-20 17:52:40 -07:00
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
}
2020-05-15 00:58:16 -06:00
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
2020-01-20 17:52:40 -07:00
cd "${cac_dir:=$KISS_ROOT${XDG_CACHE_HOME:-$HOME/.cache}/kiss}"
url=https://github.com/kisslinux/repo/releases/download/1.10.0/
2020-01-20 17:52:40 -07:00
[ -f kiss-chroot.tar.xz ] || {
log "Downloading chroot tarball"
curl -OL "$url/kiss-chroot.tar.xz" ||
die "Failed to download kiss-chroot.tar.xz"
}
2020-04-18 03:20:13 -06:00
[ -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"
2020-01-20 17:52:40 -07:00
}
log "Verifying checksums"
2020-05-15 00:58:16 -06:00
sh256 kiss-chroot.tar.xz | diff - kiss-chroot.tar.xz.sha256 ||
die "Checksum verification failed."
2020-01-20 17:52:40 -07:00
[ -d kiss-chroot ] || {
log "Extracting chroot"
tar xf kiss-chroot.tar.xz ||
die "Failed to extract tarball"
2020-01-20 17:52:40 -07:00
}
log "Creating temporary chroot"
2020-04-18 03:20:13 -06:00
cp -a kiss-chroot "chroot-$$"
2020-01-20 17:52:40 -07:00
log "Installing any arguments"
[ ! "$1" ] || KISS_ROOT=$PWD/chroot-$$ kiss i "$@"
2020-01-20 17:52:40 -07:00
log "Entering chroot"
2020-04-18 03:20:13 -06:00
su -c "kiss-chroot chroot-$$; rm -rf chroot-$$"