I don't believe it is a permissions thing. I can run the same command not in backticks and it works. I can run the backticked command directly (not through Capistrano) and it works as expected:
date is Tue May 19 09:25:51 PDT 2009 so there And I can edit Capistrano's source as described above and get it to work. There is something going on with Capistrano's escaping of the backticks that I don't understand. Why is it necessary on every computer except mine to escape the backticks? And why, when they are escaped on my machine, does the backticked command simply disappear without a trace? I can't imagine what could be so different on my machine. I realize I'm running an old Fedora, but things like backticks and shell escape characters haven't changed in 25 years. On 19 May, 08:10, Lee Hambley <[email protected]> wrote: > Scott, > Hate to respond with a classic `worksforme` -- may it be that your user > (humor me) doesn't have access to do any of the things you are asking, try > something like run('touch `echo date`') or similar. > > To save potential email formatting issues, please post the code, output and > error all in a gist/pastie and post us the links. > > - Lee > > 2009/5/19 Scott Johnson <[email protected]> > > > > > No difference. Not only is the output of the backticked command not > > getting into the string, the command itself is never being run. I can > > replace the command with `touch file.txt` and that file is never > > created. > > > On 19 May, 01:26, Lee Hambley <[email protected]> wrote: > > > Try, > > > task :foo, :hosts => "my.host.com" do > > > run "echo date is `cat /bin/date` so there" > > > end > > > > 2009/5/19 Scott Johnson <[email protected]> > > > > > I have a run command that uses shell backticks, yet the command in the > > > > backticks never runs and I get an empty string instead of the output > > > > of the command. > > > > > My Capfile: > > > > > task :foo, :hosts => "my.host.com" do > > > > run "echo date is `/bin/date` so there" > > > > end > > > > > Output from running 'cap foo': > > > > * executing 'foo' > > > > * executing "echo date is `/bin/date` so there" > > > > servers: ["my.host.com"] > > > > [my.host.com] executing command > > > > ** [out :: my.host.com] date is so there > > > > command finished > > > > > Bizarre. > > > > > I'm running cap 2.5.5 on Fedora Core release 6 with Ruby 1.8.7. The > > > > local and remote machine are the same (ie, I'm launching cap from > > > > my.host.com). > > > > > If I edit line 212 of lib/capistrano/command.rb (that escapes certain > > > > special characters in the command) and remove the backtick from the > > > > gsub args, it works. But I somehow doubt this is the proper solution, > > > > since I seem to be the only one having this problem. --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---
