58 lines
1.1 KiB
Bash
Executable File
58 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
export PATH=/usr/sbin:/sbin:/usr/bin:/bin
|
|
|
|
REMOTE=${SYNC_REMOTE:-caithe.pyrocufflink.jazz::portage-squashfs/gentoo.sqxz}
|
|
NO_EMAINT_SYNC=0
|
|
NO_LAYMAN_SYNC=0
|
|
NO_EIX=0
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--no-eix)
|
|
NO_EIX=1
|
|
shift
|
|
;;
|
|
--quiet|-q)
|
|
QUIET=1
|
|
shift
|
|
;;
|
|
*)
|
|
if [ -z "${REMOTE}" ]; then
|
|
REMOTE="${arg}"
|
|
elif [ -z "${LOCAL}" ]; then
|
|
LOCAL="${arg}"
|
|
fi
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
: ${PORTDIR:=$(portageq get_repo_path ${ROOT:-/} ${REPO_NAME:-gentoo})}
|
|
|
|
[ x${QUIET} = x ] && RSYNC_ARGS=-v
|
|
rsync -a ${RSYNC_ARGS} "${REMOTE}" "${LOCAL:-${PORTDIR%/*}}" || exit $?
|
|
|
|
if ! umount "${PORTDIR}"; then
|
|
printf 'Failed to unmount %s\n' "${PORTDIR}"
|
|
exit 1
|
|
fi
|
|
if ! mount "${PORTDIR}"; then
|
|
printf 'Failed to mount %s\n' "${PORTDIR}"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ${NO_EMAINT_SYNC} -ne 1 ]; then
|
|
if portageq repos_config / | grep -q sync-uri; then
|
|
PORTAGE_QUIET=${QUIET:+0} emaint sync --auto
|
|
fi
|
|
fi
|
|
|
|
if [ ${NO_LAYMAN_SYNC} -ne 1 ] && [ -x "$(command -v layman)" ]; then
|
|
layman --sync-all ${QUIET:+--quiet}
|
|
fi
|
|
|
|
if [ ${NO_EIX} -ne 1 ] && [ -x "$(command -v eix)" ]; then
|
|
eix-update ${QUIET:+--quiet}
|
|
fi
|