gitian-builder/libexec/copy-from-target
Luke Dashjr bf52af1377 Bugfix: copy-{to,from}-target: Strip trailing / from sources to avoid triggering special rsync behaviour
Without this, the caches end up in the wrong place (one level of directories gets removed)
2015-12-14 08:21:39 +00:00

56 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
. gconfig
TUSER=${DISTRO:-ubuntu}
QUIET_FLAG="-vP"
usage() {
echo "Usage: ${0##*/} [OPTION]... <command>"
echo "Run command on build target."
echo
cat << EOF
--help display this help and exit
--user=U run as U instead of ubuntu
EOF
}
if [ $# != 0 ] ; then
while true ; do
case "$1" in
--help|-h)
usage
exit 0
;;
--user|-u)
TUSER="$2"
shift 2
;;
--quiet|-q)
QUIET_FLAG="-q"
shift 1
;;
--*)
echo "unrecognized option $1"
exit 1
;;
*)
break
;;
esac
done
fi
if [ $# = 0 ] ; then
usage
exit 1
fi
if [ -z "$USE_LXC" ]; then
src="${1%/}" # remove trailing / which triggers special rsync behaviour
rsync --checksum -a $QUIET_FLAG -e "ssh -oConnectTimeout=30 -oNoHostAuthenticationForLocalhost=yes -i ${GITIAN_BASE:-.}/var/id_rsa -p $VM_SSH_PORT" "$TUSER@localhost:${src}" "$2"
else
config-lxc
sudo $LXC_EXECUTE -n gitian -f var/lxc.config -- sudo -i -u $TUSER tar -C `dirname "$1"` -cf - `basename "$1"` | tar -C "$2" -xf -
fi