Hello Donovan Thanks for your reply. Now everything seems fine.
Have a nice day. Sig On Saturday, February 2, 2013 10:06:39 PM UTC+8, dbray wrote: > > File.open is executed on the machine RUNNING capistrano not the remote > machines. > > You need to use a method like 'put' to do what it looks like you are > intendeding > > > https://github.com/capistrano/capistrano/wiki/2.x-DSL-Action-File-Transfer-Put > > task :update_locals do > options_hash = { key1: value1 } > put options_hash.to_yaml, "#{latest_release}/config/locals.yml" > end > > Also, use 'latest_release' instead of 'current_path'. If you call your > current task during a deploy (and it had actually worked) you would have > written the file to release directory that is about to be replaced, rather > than the one being actually deployed to. > > There are actually very few valid reasons to use ANY other method than > #{latest_release} in your recipes to target something to happen in your > release directory. > > from: > https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb > > # some tasks, like symlink, need to always point at the latest release, but > # they can also (occassionally) be called standalone. In the standalone case, > # the timestamped release_path will be inaccurate, since the directory won't > # actually exist. This variable lets tasks like symlink work either in the > # standalone case, or during deployment. > _cset(:latest_release) { exists?(:deploy_timestamped) ? release_path : > current_release } > > > On Wed, Jan 30, 2013 at 7:19 PM, macsig <[email protected] > <javascript:>>wrote: > >> Hello there. >> I'm trying to write my first very simple capistrano recipe that updates a >> value stored in a yml file. >> >> The recipe is simple as: >> >> task :update_locals do >> options_hash = { key1: value1 } >> File.open("#{current_path}/config/locals.yml", 'w+') {|f| >> f.write(options_hash.to_yaml) } >> end >> >> But when I run it I get >> >> `initialize': Input/output error - >> /home/userx/apps/appx/current/config/locals.yml (Errno::EIO) >> >> Am I missing something? >> >> I'm running ruby 1.9.3 and capistrano 2.14.1 >> >> >> >> Thanks for the help and have a good day. >> >> -- >> -- >> * You received this message because you are subscribed to the Google >> Groups "Capistrano" group. >> * To post to this group, send email to [email protected]<javascript:> >> * To unsubscribe from this group, send email to >> [email protected] <javascript:> For more options, visit >> this group at http://groups.google.com/group/capistrano?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Capistrano" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- -- * You received this message because you are subscribed to the Google Groups "Capistrano" group. * To post to this group, send email to [email protected] * To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/capistrano?hl=en --- You received this message because you are subscribed to the Google Groups "Capistrano" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
