#!/usr/bin/env bash source "$(dirname -- "${BASH_SOURCE[0]}")/lib.sh" [[ $# == 0 ]] || die 'Usage: tools/prepare-void' check_void_pin # 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 'vendor/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