Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@subtleGradient
Created April 26, 2010 19:11
Show Gist options
  • Star 28 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save subtleGradient/379750 to your computer and use it in GitHub Desktop.
Save subtleGradient/379750 to your computer and use it in GitHub Desktop.
git-transmit opens your recently modified files using Panic's Transmit.app DockSend
#!/usr/bin/env bash
# author: Thomas Aylott SubtleGradient.com
echo "Transmitting"
for i in `git log -${1:-1} $2 --name-only|grep -E '^[^ ]+$'|sort|uniq`; do
if [[ -e $i ]]; then
echo " $i"
open -a Transmit $i
fi
done
@subtleGradient
Copy link
Author

I have no idea. Sorry :[

Well, I guess you setup DockSend only on one favorite and not the other.

@dancourse
Copy link

Just had an idea!

What if you export 2 droplets with all the FTP details in it... eg,
ftp-live.app
ftp-staging.app

Then type,
sh git-transmit 1 --since=yesterday live

or

sh git-transmit 1 --since=yesterday staging

Then it calls the correct droplet app, (afraid I don't know shell scripting to make it run an if statement)
open -a ftp-live.app $i

or

open -a ftp-staging.app $i

@subtleGradient
Copy link
Author

subtleGradient commented Mar 2, 2012 via email

@dancourse
Copy link

Nice one!

Got the if statement working fine. However, it just seems to ignore the local file directory and puts them all to the root?

echo "Transmitting..."
for i in git log -${2:-1} $3 --name-only|grep -E '^[^ ]+$'|sort|uniq; do
if [[ -e $i ]]; then
echo " $i"
if [ $1 == 'live' ]
then
open -a ftp-live.app $i
fi
if [ $1 == 'staging' ]
then
open -a ftp-staging.app $i
fi
fi
done

@subtleGradient
Copy link
Author

subtleGradient commented Mar 3, 2012 via email

@dancourse
Copy link

dancourse commented Mar 3, 2012 via email

@billkeller
Copy link

@subtleGradient Thanks for this, it's great!

@dotdreaming
Copy link

@subtleGradient thanks for this, its great! I am also trying to configure this to deploy to specific ftp server/transmit favourites. It would be cool if I could get to check for a environment argument e.g $ git-transmit dev

@dancourse did you manage to get this to work with specific Transmit favourite? At the moment the script will deploy to all favourites.

@quickshiftin
Copy link

Hey guys, checkout the fork I just uploaded. It's aims to be smart about only pushing files that have changed by using a local tag to track where the repo was at each time you do a push. https://gist.github.com/quickshiftin/8809435

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment