85 lines
2.4 KiB
Bash
85 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Build: Bootstrap a base Hyperbola GNU plus Linux-libre system
|
|
|
|
set -e -u -o pipefail
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage:
|
|
bash $0 make-bootstrap-file.sh
|
|
or
|
|
bash $0 make-bootstrap-file.sh --arch i686 --release v0.4.3 --url https://mirror.fsf.org/hyperbola/gnu-plus-linux-libre/stable
|
|
or
|
|
bash $0 make-bootstrap-file.sh -a i686 -r v0.4.3 -u https://mirror.fsf.org/hyperbola/gnu-plus-linux-libre/stable
|
|
EOF
|
|
exit 1
|
|
}
|
|
|
|
SCRIPT=$(readlink -f "$0")
|
|
SCRIPT_PWD=$(dirname "$SCRIPT")
|
|
CHROOT_DELETE='y'
|
|
|
|
RESULTPATH="${SCRIPT_PWD}"
|
|
ARCH="x86_64"
|
|
RELEASE="v0.4.3"
|
|
REPO_URL="https://mirror.fsf.org/hyperbola/gnu-plus-linux-libre/stable"
|
|
|
|
# Parse command-line arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
key="${1}"
|
|
case $key in
|
|
-a|--arch)
|
|
ARCH="${2}"
|
|
shift 2
|
|
;;
|
|
-r|--release)
|
|
RELEASE="${2}"
|
|
shift 2
|
|
;;
|
|
-u|--url)
|
|
REPO_URL="${2}"
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "Unrecognized option: $key"
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Set ROOTFS
|
|
ROOTFS="$ARCH"
|
|
|
|
# Remove old archives
|
|
rm -fv "${RESULTPATH}/hyperbola-bootstrap-${ARCH}.tar.gz" "${RESULTPATH}/hyperbola-bootstrap-${ARCH}.tar.gz.sha512sum"
|
|
|
|
# Make bootstrap for Hyperbola
|
|
bash "${SCRIPT_PWD}/hyper-bootstrap_${RELEASE}.sh" -a "${ARCH}" -r "${REPO_URL}" "${ROOTFS}"
|
|
|
|
# Clean up package cache
|
|
(cd "${ROOTFS}" && rm -rf var/cache/*)
|
|
|
|
# Rename pacnew files
|
|
printf '%b%s%b%s%b\n' '\e[1;32m' '==> ' '\e[0m\033[1m' 'Rename files ending in .pacnew...' '\e[m'
|
|
find "${ROOTFS}" -type f -name "*.pacnew" -exec sh -c 'mv -f "$1" "${1%.pacnew}"' _ {} \;
|
|
|
|
# Make new tarball
|
|
printf '%b%s%b%s%b\n' '\e[1;32m' '==> ' '\e[0m\033[1m' "Make hyperbola-bootstrap-${ARCH}.tar.gz..." '\e[m'
|
|
(cd "${RESULTPATH}/${ROOTFS}" && tar --create --gzip --numeric-owner --xattrs --acls --file="${SCRIPT_PWD}/hyperbola-bootstrap-${ARCH}.tar.gz" *)
|
|
|
|
# Make sha512sum
|
|
(cd ${RESULTPATH} && sha512sum "hyperbola-bootstrap-${ARCH}.tar.gz" >| "hyperbola-bootstrap-${ARCH}.tar.gz.sha512sum")
|
|
|
|
# Clean chroot temp
|
|
case $CHROOT_DELETE in
|
|
y) rm -rf "${ROOTFS}" || true && echo -e "\e[1;32m==>\e[0m\033[1m Temporal chroot deleted! \e[m" ;;
|
|
n) echo 'Temporal chroot available' ;;
|
|
*) echo 'Invalid option "$@"' ;;
|
|
esac
|
|
|
|
# Report result
|
|
echo "REPO: ${REPO_URL}"
|
|
echo "ROOTFS: ${ROOTFS}"
|
|
echo "RESULTPATH: ${RESULTPATH}"
|