mirror of
https://github.com/luchina-gabriel/OSX-PROXMOX.git
synced 2026-09-25 20:47:01 +00:00
Optimize install of OSX-PROXMOX
This commit is contained in:
+28
-4
@@ -65,10 +65,34 @@ log_message "Installing git..."
|
||||
apt-get install -y git >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to install git"
|
||||
|
||||
# Clone repository
|
||||
log_message "Cloning OSX-PROXMOX repository..."
|
||||
git clone --recurse-submodules https://github.com/luchina-gabriel/OSX-PROXMOX.git /root/OSX-PROXMOX >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to clone repository"
|
||||
# Download repository (latest version only, without full history)
|
||||
REPO_URL="https://github.com/luchina-gabriel/OSX-PROXMOX.git"
|
||||
REPO_DIR="/root/OSX-PROXMOX"
|
||||
|
||||
# Shallow + partial + sparse checkout: fetches only the files the setup needs.
|
||||
# The OpenCore ISO is left out on purpose - the setup downloads it into the ISO
|
||||
# storage on its own, so checking it out here would just duplicate ~96 MB.
|
||||
clone_latest_only() {
|
||||
git clone --depth 1 --filter=blob:none --sparse "$REPO_URL" "$REPO_DIR" &&
|
||||
git -C "$REPO_DIR" sparse-checkout set tools
|
||||
}
|
||||
|
||||
log_message "Downloading OSX-PROXMOX repository (latest version only)..."
|
||||
if ! clone_latest_only >> "$LOG_FILE" 2>&1; then
|
||||
log_message "Partial clone unavailable. Falling back to shallow clone..."
|
||||
rm -rf "$REPO_DIR"
|
||||
git clone --depth 1 "$REPO_URL" "$REPO_DIR" >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to clone repository"
|
||||
fi
|
||||
|
||||
# Download submodules (GenSMBIOS) at their pinned revision only
|
||||
log_message "Downloading submodules..."
|
||||
if ! git -C "$REPO_DIR" submodule update --init --depth 1 >> "$LOG_FILE" 2>&1; then
|
||||
log_message "Shallow submodule fetch failed. Retrying with full history..."
|
||||
git -C "$REPO_DIR" submodule deinit -f --all >> "$LOG_FILE" 2>&1 || true
|
||||
git -C "$REPO_DIR" submodule update --init --force >> "$LOG_FILE" 2>&1
|
||||
check_status "Failed to download submodules"
|
||||
fi
|
||||
|
||||
# Ensure directory exists and setup is executable
|
||||
if [ -f "/root/OSX-PROXMOX/setup" ]; then
|
||||
|
||||
@@ -220,6 +220,16 @@ ensure_base64_xxd_dependency() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to ensure wget is installed
|
||||
ensure_wget_dependency() {
|
||||
local logfile="${LOGDIR}/wget-dependency.log"
|
||||
if ! command -v wget >/dev/null 2>&1; then
|
||||
display_and_log "Installing wget..." "$logfile"
|
||||
apt-get update >>"$logfile" 2>&1 || log_and_exit "Failed to update apt" "$logfile"
|
||||
apt-get install -y wget >>"$logfile" 2>&1 || log_and_exit "Failed to install wget" "$logfile"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to set ISODIR based on selected ISO storage
|
||||
set_isodir() {
|
||||
local logfile="${LOGDIR}/iso-storage-detection.log"
|
||||
@@ -328,7 +338,7 @@ detect_cpu_platform() {
|
||||
# Function to setup prerequisites
|
||||
setup_prerequisites() {
|
||||
local logfile="${LOGDIR}/prerequisites-setup.log"
|
||||
cp "${SCRIPT_DIR}/EFI/"*.iso "$ISODIR" || log_and_exit "Failed to copy EFI files" "$logfile"
|
||||
# The OpenCore ISO is already provisioned in ISODIR by update_opencore_iso at startup
|
||||
printf "alias osx-setup='%s/setup'\n" "$SCRIPT_DIR" >> /root/.bashrc
|
||||
printf "LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8\n" > /etc/environment
|
||||
printf "set mouse-=a\n" > ~/.vimrc
|
||||
@@ -862,6 +872,7 @@ update_opencore_iso() {
|
||||
iso_path="${ISODIR}/${OPENCORE_ISO}"
|
||||
oc_json_path="${ISODIR}/.smbios.json"
|
||||
|
||||
ensure_wget_dependency
|
||||
rm -f "$iso_path" >>"$logfile" 2>&1
|
||||
if ! wget -q -O "$iso_path" "$iso_url" >>"$logfile" 2>&1; then
|
||||
log_and_exit "Failed to download OpenCore ISO" "$logfile"
|
||||
|
||||
Reference in New Issue
Block a user