particle-os/02-installer-bootc/scripts/install-custom-packages.sh
2025-08-07 01:04:22 -07:00

70 lines
No EOL
1.9 KiB
Bash
Executable file

#!/bin/bash
# Script to install custom bootc and ostree packages
set -e
echo "Installing custom bootc and ostree packages..."
# Paths to the custom package builds
BOOTC_BUILD_DIR="/home/rob/Documents/Projects/bootc-deb/builds"
OSTREE_BUILD_DIR="/home/rob/Documents/Projects/libostree-dev/builds"
# Check if build directories exist
if [ ! -d "$BOOTC_BUILD_DIR" ]; then
echo "Error: bootc build directory not found at $BOOTC_BUILD_DIR"
exit 1
fi
if [ ! -d "$OSTREE_BUILD_DIR" ]; then
echo "Error: ostree build directory not found at $OSTREE_BUILD_DIR"
exit 1
fi
# Function to install packages with error handling
install_packages() {
local pkg_dir="$1"
local pattern="$2"
echo "Installing packages from $pkg_dir matching $pattern..."
cd "$pkg_dir"
# Find all matching packages
local packages=($(ls $pattern 2>/dev/null || true))
if [ ${#packages[@]} -eq 0 ]; then
echo "Warning: No packages found matching $pattern in $pkg_dir"
return 1
fi
echo "Found packages: ${packages[*]}"
# Install packages
sudo dpkg -i "${packages[@]}" || true
sudo apt-get install -f -y
echo "Packages installed successfully!"
}
# Install ostree packages first (bootc depends on them)
echo "Installing ostree packages..."
install_packages "$OSTREE_BUILD_DIR" "libostree-1-1_*.deb libostree-dev_*.deb ostree_*.deb ostree-boot_*.deb"
# Install bootc packages
echo "Installing bootc packages..."
install_packages "$BOOTC_BUILD_DIR" "bootc_*.deb"
# Verify installation
echo "Verifying installation..."
if command -v bootc &> /dev/null; then
echo "bootc version: $(bootc --version)"
else
echo "Warning: bootc not found in PATH"
fi
if command -v ostree &> /dev/null; then
echo "ostree version: $(ostree --version)"
else
echo "Warning: ostree not found in PATH"
fi
echo "Custom packages installation completed!"