#!/bin/sh set -eu if [ "${MMDEBSTRAP_VERBOSITY:-1}" -ge 3 ]; then set -x fi rootdir="$1" # process all configured apt repositories env APT_CONFIG="$MMDEBSTRAP_APT_CONFIG" apt-get indextargets --no-release-info --format '$(REPO_URI)' \ | sed -ne 's/^file:\/\+//p' \ | sort -u \ | while read -r path; do mkdir -p "$rootdir/run/mmdebstrap" case $MMDEBSTRAP_MODE in root|unshare) echo "bind-mounting /$path into the chroot" >&2 mkdir -p "$rootdir/$path" mount -o ro,bind "/$path" "$rootdir/$path" ;; *) echo "copying /$path into the chroot" >&2 mkdir -p "$rootdir/$(dirname "$path")" cp -av "/$path" "$rootdir/$(dirname "$path")" ;; esac printf '/%s\0' "$path" >> "$rootdir/run/mmdebstrap/file-mirror-automount" done # process all files given via --include set -f # turn off pathname expansion IFS=',' # split by comma for pkg in $MMDEBSTRAP_INCLUDE; do set +f; unset IFS case $pkg in ./*|../*|/*) : ;; # we are interested in this case *) continue ;; # not a file esac # undo escaping pkg="$(printf '%s' "$pkg" | sed 's/%2C/,/g; s/%25/%/g')" # check for existance if [ ! -f "$pkg" ]; then echo "$pkg does not exist" >&2 continue fi # make path absolute pkg="$(realpath "$pkg")" mkdir -p "$rootdir/run/mmdebstrap" mkdir -p "$rootdir/$(dirname "$pkg")" case $MMDEBSTRAP_MODE in root|unshare) echo "bind-mounting $pkg into the chroot" >&2 touch "$rootdir/$pkg" mount -o bind "$pkg" "$rootdir/$pkg" ;; *) echo "copying $pkg into the chroot" >&2 cp -av "$pkg" "$rootdir/$pkg" ;; esac printf '/%s\0' "$pkg" >> "$rootdir/run/mmdebstrap/file-mirror-automount" done set +f; unset IFS