71 lines
2.0 KiB
Bash
71 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
# Logfile
|
|
LOGFILE="$HOME/box_install.log"
|
|
touch "$LOGFILE" || {
|
|
echo "[FATAL] Cannot write to $LOGFILE. Check permissions." >&2
|
|
exit 1
|
|
}
|
|
|
|
# Helper functions
|
|
get_arch() {
|
|
case "$(uname -m)" in
|
|
x86_64) echo "amd64" ;;
|
|
aarch64) echo "arm64" ;;
|
|
armv7l|armv6l) echo "armhf" ;;
|
|
*) uname -m ;;
|
|
esac
|
|
}
|
|
|
|
is_arch() {
|
|
local current_arch
|
|
current_arch="$(get_arch)"
|
|
|
|
if [[ "$current_arch" == "$1" ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
log() {
|
|
echo "[INFO] $*" | tee -a "$LOGFILE"
|
|
}
|
|
|
|
err() {
|
|
echo "[ERROR] $*" | tee -a "$LOGFILE" >&2
|
|
}
|
|
|
|
# Add box64 repo
|
|
log "Adding box64 repository..."
|
|
if ! sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list >>"$LOGFILE" 2>&1; then
|
|
err "Failed to download box64.list"
|
|
fi
|
|
if ! wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg >>"$LOGFILE" 2>&1; then
|
|
err "Failed to download or add KEY.gpg for box64"
|
|
fi
|
|
|
|
# Add box86 repo
|
|
log "Adding box86 repository..."
|
|
if ! sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list >>"$LOGFILE" 2>&1; then
|
|
err "Failed to download box86.list"
|
|
fi
|
|
if ! wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg >>"$LOGFILE" 2>&1; then
|
|
err "Failed to download or add KEY.gpg for box86"
|
|
fi
|
|
|
|
# Check if arch is amd64, and if so add armhf dpkg for box86 to work
|
|
if is_arch "amd64"; then
|
|
log "64-bit system detected. Enabling armhf support for box86..."
|
|
if ! sudo dpkg --add-architecture armhf >>"$LOGFILE" 2>&1; then
|
|
err "Failed to add armhf architecture"
|
|
fi
|
|
fi
|
|
|
|
# Update apt packge index
|
|
log "Updating apt package index..."
|
|
if ! sudo apt update >>"$LOGFILE" 2>&1; then
|
|
err "Failed to update apt package list"
|
|
fi
|
|
|
|
log "Script completed successfully, box86 and box64 repos installed." |