visionmedia / deploy

Minimalistic deployment shell script
1.15k stars 142 forks source link

SHARED env variable in post-deploy hook is blank #6

Open slaskis opened 12 years ago

slaskis commented 12 years ago

Hey, I'm trying to use a little hook magic for my node server, something like this:

post-deploy npm install && (cat $SHARED/pids/master.pid | xargs kill -s SIGUSR2) || PORT=8001 node server.js >> $SHARED/logs/node.log 2>&1

and well, it fails because $SHARED is blank, so I tried this to confirm:

post-deploy env

which listed SHARED=/home/deploy/app/shared as expected, but trying this:

post-deploy cat $SHARED/pids/master.pid

fails with cat: /pids/master.pid: No such file or directory, in other words SHARED is blank...

am I using it wrong?

It's on ubuntu 10.4 (installed using the node knockout linode stack script )

tj commented 12 years ago

hmmm not too sure off hand, i'll have to take a look

bronson commented 12 years ago

Sounds like your command is being interpreted twice: the local shell sees the variable and replaces it with blank, hiding it from the remote shell where $SHARED is actually set.

Maybe try cat \$SHARED/pids/master.pid or cat '$SHARED/pids/master.pid' or various combinations of escaping to get the variable to arrive where it can be used.