46 lines
860 B
Bash
Executable File
46 lines
860 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "Usage: $0 /path/to/source.iso"
|
|
exit 1
|
|
fi
|
|
|
|
SOURCE_ISO="$1"
|
|
|
|
if [[ ! -f "$SOURCE_ISO" ]]; then
|
|
echo "Error: ISO not found: $SOURCE_ISO"
|
|
exit 1
|
|
fi
|
|
|
|
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
BASE_DIR="$(cd "$REPO_DIR/.." && pwd)"
|
|
BUILD_DIR="$BASE_DIR/build"
|
|
WORK_DIR="$BUILD_DIR/work"
|
|
MOUNT_DIR="/mnt/fedora-iso"
|
|
|
|
echo "Source ISO: $SOURCE_ISO"
|
|
echo "Work dir: $WORK_DIR"
|
|
|
|
sudo mkdir -p "$MOUNT_DIR"
|
|
|
|
rm -rf "$WORK_DIR"
|
|
mkdir -p "$WORK_DIR"
|
|
|
|
echo "Mounting ISO..."
|
|
sudo mount -o loop "$SOURCE_ISO" "$MOUNT_DIR"
|
|
|
|
cleanup() {
|
|
echo "Unmounting ISO..."
|
|
sudo umount "$MOUNT_DIR" || true
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
echo "Copying ISO contents..."
|
|
sudo rsync -a "$MOUNT_DIR"/ "$WORK_DIR"/
|
|
|
|
echo "Fixing ownership..."
|
|
sudo chown -R "$(id -u):$(id -g)" "$WORK_DIR"
|
|
|
|
echo "Done."
|