project-manager/path/project-pull

35 lines
979 B
Bash
Executable File

#!/bin/bash
set -e
local_host="$HOSTNAME"
local_project="$(cat currentProject)"
remote_host="$(ssh "$(project-sshn)" "cat "~/project-manager/host"")"
remote_project="$(ssh "$(project-sshn)" "cat "~/project-manager/project"")"
if [ "$local_project" != "" ]; then
echo "ERROR: This machine has an unpushed project: $local_project"
exit 1
fi
if [ "$1" == "" ]; then
echo "ERROR: No project given."
exit 1
fi
if [ "$remote_project" != "" ]; then
echo "ERROR: $remote_host is currently maintaining $remote_project. Push from it first."
exit 1
fi
set +e
ssh "$(project-sshn)" test -d "~/project-manager/projects/$1"
if [ "$?" != "0" ]; then
echo "ERROR: Project does not exist or SSH failed."
exit 1
fi
set -e
echo "$local_host" | ssh "$(project-sshn)" "cat > "~/project-manager/host""
echo "$1" | ssh "$(project-sshn)" "cat > "~/project-manager/project""
rsync --progress --delete -a "$(project-sshn):~/project-manager/projects/$1/." "project"
echo "$1" > currentProject