Skip to content

Instantly share code, notes, and snippets.

@skhani
Forked from tanakahisateru/scp-git-diff.sh
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skhani/b7189377ed98af9b4c38 to your computer and use it in GitHub Desktop.
Save skhani/b7189377ed98af9b4c38 to your computer and use it in GitHub Desktop.
#!/bin/sh
if [ $# -ne 1 ]; then
echo "$0 <git-commit>" 1>&2
exit 1
fi
git diff --name-status $1
read -p "Press any key to execute..."
rm -rf ./tmp
git diff --name-only $1 | git checkout-index --prefix=./tmp/htdocs/ --stdin
git diff --name-status $1 | awk '{if($1=="D") print $2}' > ./tmp/deleted
auto_ssh()
{
expect -c "
spawn $1
expect {
\" Are you sure you want to continue connecting (yes/no)?\" {
send \"yes\r\"
expect \"password:\"
send \"${2}\r\"
}
\"password:\" {
send \"${2}\r\"
}
}
interact
"
}
auto_ssh 'scp -r ./tmp/htdocs username@hostname.com:/home/vhost/www.hostname.com/htdocs' mypassword
for line in `cat ./tmp/deleted`
do
auto_ssh 'ssh username@hostname.com rm -f /home/vhost/www.hostname.com/htdocs/'$line\' mypassword
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment