Excellent. I've committed that change.
- Jamis
On Jun 20, 2007, at 4:16 AM, tobi wrote:
>
> Hi
>
> yepp, Mikes suggestion works for me fine as well, both with sh and
> tcsh on the remote side...
> thanks!
>
> On 19 Jun, 22:24, Jamis Buck <[EMAIL PROTECTED]> wrote:
>> Ah, clever, quoting the semicolon instead of escaping it. That works
>> for me locally. Can anyone else experiment with that to see if it
>> works for their setup? If no one reports any problems, I'll make that
>> change.
>>
>> - Jamis
>>
>> On Jun 19, 2007, at 2:09 PM, Mike I wrote:
>>
>>
>>
>>> Unfortunately I'm behind a corporate firewall so I can't get you
>>> access to the machine. However, after quite a bit of fooling
>>> around, I
>>> believe I've solved it. The man page for find says the following
>>> about
>>> the "-exec" option:
>>
>>> "Execute command; true if 0 status is returned. All following
>>> arguments to find are taken to be arguments to the command until an
>>> argument consisting of ';' is encountered. The string '{}' is
>>> replaced by the current file name being processed everywhere it
>>> occurs
>>> in the arguments to the command, not just in arguments where it is
>>> alone, as in some versions of find. Both of these constructions
>>> might
>>> need to be escaped (with a '\') or quoted to protect them from
>>> expansion by the shell. The command is executed in the starting
>>> directory."
>>
>>> My understanding of this is that "{}" must also be escaped, not just
>>> the ";". So, I altered line 163 to be:
>>
>>> run "find #{asset_paths} -exec touch -t #{stamp} '{}' ';';
>>> true", :env
>>> => { "TZ" => "UTC" }
>>
>>> This appears to work just fine on my machine, though I'm not sure
>>> how
>>> this will behave on other systems.
>>
>>> -Mike
>>
>>> On Jun 19, 3:50 pm, Jamis Buck <[EMAIL PROTECTED]> wrote:
>>>> At this point, I'm going to have to ask for help. I can't duplicate
>>>> this. Admittedly, I don't have a remote server exactly like what
>>>> has
>>>> been reported, but I've tried going against RHEL, mac osx, and
>>>> freebsd, and I've tried hitting bash 2.5 and bash 3.0, and a
>>>> vanilla
>>>> POSIX shell, and all have worked fine.
>>
>>>> Anyone that is having this problem: I need you to do some
>>>> legwork to
>>>> investigate this more. That, or grant me login access to one of
>>>> your
>>>> servers and allow me to try and duplicate the problem that way.
>>
>>>> Thanks,
>>
>>>> Jamis
>>
>>>> On Jun 19, 2007, at 1:44 PM, Mike I wrote:
>>
>>>>> Hi Jamis,
>>
>>>>> I too am having this problem. Adding the extra spaces in deploy.rb
>>>>> does not seem to solve the issue.
>>
>>>>> Here's my info:
>>
>>>>> uname:
>>>>> Linux uptwolx250 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:54:53 EST
>>>>> 2006
>>>>> i686 i686 i386 GNU/Linux
>>
>>>>> sh -version
>>>>> GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)
>>>>> Copyright (C) 2004 Free Software Foundation, Inc.
>>
>>>>> On Jun 19, 2:24 pm, Jamis Buck <[EMAIL PROTECTED]> wrote:
>>>>>> Tobi,
>>
>>>>>> Hmm. I've tried and tried, and I can't seem to duplicate this
>>>>>> error,
>>>>>> so I have way to know if any of the tweaks I make will "fix" the
>>>>>> problem.
>>
>>>>>> Could you try opening capistrano/recipes/deploy.rb, going to line
>>>>>> 163, an putting a space between the two semicolons? Does that
>>>>>> make
>>>>>> things work any better?
>>
>>>>>> - Jamis
>>
>>>>>> On Jun 18, 2007, at 5:26 AM, tobi wrote:
>>
>>>>>>> Hi all!
>>
>>>>>>> I'm using the latest capistrano version 1.99.3. On executing
>>>>>>> "cap
>>>>>>> deploy" I do get a "syntax error near unexpected token `;;'"
>>>>>>> error:
>>
>>>>>>> ...
>>>>>>> * executing "find /app/releases/20070618111650/public/images /
>>>>>>> app/
>>>>>>> releases/20070618111650/public/stylesheets /app/releases/
>>>>>>> 20070618111650/public/javascripts -exec touch -t 200706181117.51
>>>>>>> {} \
>>>>>>> \;; true"
>>>>>>> servers: ["serv-4103"]
>>>>>>> [serv-4103] executing command
>>>>>>> ** [out :: serv-4103] sh: -c: line 1: syntax error near
>>>>>>> unexpected
>>>>>>> token `;;'
>>>>>>> ** [out :: serv-4103] sh: -c: line 1: `TZ=UTC find /app/
>>>>>>> releases/
>>>>>>> 20070618111650/public/images /app/releases/20070618111650/
>>>>>>> public/
>>>>>>> stylesheets /app/releases/20070618111650/public/javascripts -
>>>>>>> exec
>>>>>>> touch -t 200706181117.51 {} \\;; true'
>>>>>>> command finished
>>>>>>> *** [deploy:update_code] rolling back
>>>>>>> * executing "rm -rf /app/releases/20070618111650; true"
>>>>>>> servers: ["serv-4103"]
>>>>>>> [serv-4103] executing command
>>>>>>> command finished
>>>>>>> command "TZ=UTC find /app/releases/20070618111650/public/
>>>>>>> images /
>>>>>>> app/
>>>>>>> releases/20070618111650/public/stylesheets /app/releases/
>>>>>>> 20070618111650/public/javascripts -exec touch -t 200706181117.51
>>>>>>> {} \
>>>>>>> \;; true" failed on serv-4103
>>>>>>> ...
>>
>>>>>>> looks like an escape problem with \\;; - but I couldn't fix it.
>>
>>>>>>> remote system is:
>>>>>>> Linux serv-4103 2.6.5-7.276-smp #1 SMP Mon Jul 24 10:45:31 UTC
>>>>>>> 2006
>>>>>>> i686 i686 i386 GNU/Linux
>>
>>>>>>> sh -version
>>>>>>> -> GNU bash, version 2.05b.0(1)-release (i586-suse-linux)
>>>>>>> Copyright
>>>>>>> (C) 2002 Free Software Foundation, Inc.
>>
>>>>>>> Any ideas?
>>>>>>> Thanks, bye Tobi
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---