29 lines
1.4 KiB
Bash
Executable File
29 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$(dirname -- "${BASH_SOURCE[0]}")/lib.sh"
|
|
[[ $# == 0 ]] || die 'Usage: tools/prepare-void'
|
|
"$FDS_ROOT/tools/prepare-void-workspace"
|
|
check_void_pin
|
|
"$FDS_ROOT/tools/version" >"$FDS_VOID/fds-version.next"
|
|
mv "$FDS_VOID/fds-version.next" "$FDS_VOID/fds-version"
|
|
# xbps-src reads this ignored local configuration instead of user-global settings.
|
|
if [[ -f $FDS_VOID/etc/conf ]] && ! cmp -s "$FDS_ROOT/config/xbps-src.conf" "$FDS_VOID/etc/conf"; then
|
|
die '.host/void-packages/etc/conf differs from config/xbps-src.conf; reconcile it explicitly'
|
|
fi
|
|
cp -- "$FDS_ROOT/config/xbps-src.conf" "$FDS_VOID/etc/conf"
|
|
# Only directories containing a template are active overlays.
|
|
# Copies keep the source available inside xbps-src's /void-packages bind mount.
|
|
for template in "$FDS_ROOT"/packages/*/template; do
|
|
[[ -f $template ]] || continue
|
|
package_dir=${template%/template}
|
|
package=${package_dir##*/}
|
|
[[ $package == fds-* ]] || die "Overlay name must start with fds-: $package"
|
|
tracked=$(git -C "$FDS_VOID" ls-tree HEAD "srcpkgs/$package")
|
|
[[ -z $tracked ]] || die "Overlay would replace an upstream package: $package"
|
|
dest="$FDS_VOID/srcpkgs/$package"
|
|
if [[ -e $dest ]]; then
|
|
diff -qr "$package_dir" "$dest" >/dev/null || die "Stale overlay $dest; remove that generated copy and retry"
|
|
else
|
|
cp -a -- "$package_dir" "$dest"
|
|
fi
|
|
done
|