Renamed helpers to correspond to renamed Controller classes.
[merb_radiant.git] / lib / tasks / .svn / text-base / framework.rake.svn-base
blob66e9450f757d37322de5b577f958563704098297
1 # Only define freeze and unfreeze tasks in instance mode
2 unless File.directory? "#{RAILS_ROOT}/app"
3   namespace :radiant do
4     namespace :freeze do
5       desc "Lock this application to the current gems (by unpacking them into vendor/radiant)"
6       task :gems do
7         require 'rubygems'
8         Gem.manage_gems
10         radiant = (version = ENV['VERSION']) ?
11           Gem.cache.search('radiant', "= #{version}").first :
12           Gem.cache.search('radiant').sort_by { |g| g.version }.last
14         version ||= radiant.version
16         unless radiant
17           puts "No radiant gem #{version} is installed.  Do 'gem list radiant' to see what you have available."
18           exit
19         end
21         puts "Freezing to the gems for Radiant #{radiant.version}"
22         rm_rf   "vendor/radiant"
24         chdir("vendor") do
25           Gem::GemRunner.new.run(["unpack", "-v", "=#{version}", "radiant"])
26           FileUtils.mv(Dir.glob("radiant*").first, "radiant")
27         end
28       end
30       desc "Lock to latest Edge Radiant or a specific revision with REVISION=X (ex: REVISION=4021), a tag with TAG=Y (ex: TAG=rel_1-1-0), or a branch with BRANCH=Z (ex: BRANCH=mental)"
31       task :edge do
32         $verbose = false
33         `svn --version` rescue nil
34         unless !$?.nil? && $?.success?
35           $stderr.puts "ERROR: Must have subversion (svn) available in the PATH to lock this application to Edge Radiant"
36           exit 1
37         end
39         rm_rf   "vendor/radiant"
40         mkdir_p "vendor/radiant"
42         svn_root = "http://dev.radiantcms.org/svn/radiant/"
44         case
45         when ENV['TAG']
46           radiant_svn = "#{svn_root}/tags/#{ENV['TAG']}"
47           touch "vendor/radiant/TAG_#{ENV['TAG']}"
48         when ENV['BRANCH']
49           radiant_svn = "#{svn_root}/branches/#{ENV['BRANCH']}"
50           touch "vendor/radiant/BRANCH_#{ENV['BRANCH']}"
51         else
52           radiant_svn = "#{svn_root}/trunk"
54           if ENV['REVISION'].nil?
55             ENV['REVISION'] = /^r(\d+)/.match(%x{svn -qr HEAD log #{svn_root}})[1]
56             puts "REVISION not set. Using HEAD, which is revision #{ENV['REVISION']}."
57           end
59           touch "vendor/radiant/REVISION_#{ENV['REVISION']}"
60         end
61       
62         system "svn export #{radiant_svn}/radiant vendor/radiant" + (ENV['REVISION'] ? " -r #{ENV['REVISION']}" : "") + " --force"
63       end
64     end
66     desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
67     task :unfreeze do
68       rm_rf "vendor/radiant"
69     end
70     
71     desc "Update both configs, scripts and public/javascripts from Radiant"
72     task :update => [ "update:scripts", "update:javascripts", "update:configs", "update:images", "update:stylesheets" ]
74     namespace :update do
75       desc "Add new scripts to the instance script/ directory"
76       task :scripts do
77         local_base = "script"
78         edge_base  = "#{File.dirname(__FILE__)}/../../scripts"
79         
80         local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) }
81         edge  = Dir["#{edge_base}/**/*"].reject { |path| File.directory?(path) }
82         edge  = edge.reject { |f| f =~ /(generate|plugin|destroy)$/ }
83         
84         edge.each do |script|
85           base_name = script[(edge_base.length+1)..-1]
86           next if local.detect { |path| base_name == path[(local_base.length+1)..-1] }
87           if !File.directory?("#{local_base}/#{File.dirname(base_name)}")
88             mkdir_p "#{local_base}/#{File.dirname(base_name)}"
89           end
90           install script, "#{local_base}/#{base_name}", :mode => 0755
91         end
92         install "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_generate", "#{local_base}/generate", :mode => 0755
93       end
95       desc "Update your javascripts from your current radiant install"
96       task :javascripts do
97         project_dir = RAILS_ROOT + '/public/javascripts/'
98         scripts = Dir["#{File.dirname(__FILE__)}/../../public/javascripts/*.js"]
99         scripts.reject!{|s| File.basename(s) == 'application.js'} if File.exists?(project_dir + 'application.js')
100         FileUtils.cp(scripts, project_dir)
101       end
103       desc "Update config/boot.rb from your current radiant install"
104       task :configs do
105         FileUtils.cp("#{File.dirname(__FILE__)}/../generators/instance/templates/instance_boot.rb", RAILS_ROOT + '/config/boot.rb')
106       end
107       
108       desc "Update admin images from your current radiant install"
109       task :images do
110         project_dir = RAILS_ROOT + '/public/images/admin/'
111         images = Dir["#{File.dirname(__FILE__)}/../../public/images/admin/*"]
112         FileUtils.cp(images, project_dir)
113       end
114       
115       desc "Update admin stylesheets from your current radiant install"
116       task :stylesheets do
117         project_dir = RAILS_ROOT + '/public/stylesheets/admin/'
118         stylesheets = Dir["#{File.dirname(__FILE__)}/../../public/stylesheets/admin/*.css"]
119         FileUtils.cp(stylesheets, project_dir)
120       end      
121     end
122   end