38 lines
833 B
Bash
Executable File
38 lines
833 B
Bash
Executable File
#!/bin/bash
|
|
# Create the data partition image with ROM directory structure.
|
|
set -e
|
|
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
image="$1"
|
|
|
|
if [ -z "$image" ]; then
|
|
echo "Usage: $0 IMAGE"
|
|
exit 1
|
|
fi
|
|
|
|
# Build guestfish commands to create exFAT filesystem with ROM dirs
|
|
script=(
|
|
"run"
|
|
"mkfs vfat /dev/sda label:ROMS"
|
|
"mount /dev/sda /"
|
|
)
|
|
|
|
# Create ROM directories
|
|
while IFS= read -r dir; do
|
|
[ -z "$dir" ] && continue
|
|
[[ "$dir" =~ ^# ]] && continue
|
|
script+=("mkdir \"/roms/$dir\"")
|
|
done < "$script_dir/rom-dirs.txt"
|
|
|
|
# Create support directories
|
|
script+=("mkdir \"/roms/bios\"")
|
|
script+=("mkdir \"/roms/saves\"")
|
|
script+=("mkdir \"/roms/screenshots\"")
|
|
|
|
for cmd in "${script[@]}"; do
|
|
echo "$cmd"
|
|
done | guestfish --format=raw -a "$image"
|
|
|
|
echo "Data partition image created at $image"
|