forked from kiss-community/kiss
69 lines
1.7 KiB
Bash
Executable File
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.11.1/
|
|
|
|
[ -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-$$"
|