public
Description: Usefull scripts and Rake tasks
Clone URL: git://github.com/hipertracker/merb-scripts.git
hipertracker (author)
Sat Mar 08 21:06:22 -0800 2008
commit  4037a6c31772651bf268bee09bd0c263247ab69f
tree    7cc394895418b743641010a225cba009a5a17393
parent  fbcdff56e42dfd136b55a9950d3bb269cab8824e
merb-scripts / Rakefile
100644 84 lines (74 sloc) 2.629 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
git_fork = 'wycats' # original
 
windows = (PLATFORM =~ /win32|cygwin/) rescue nil
SUDO = windows ? "" : "sudo "
 
def filename_for(name)
  Dir.glob("#{name}/pkg/#{File.basename(name)}*.gem")[0]
end
 
namespace :merb do
  
  desc "Pull merb-core, merb-more, merb-plugins"
  task :pull do
    %w(merb-core merb-more merb-plugins).each do |dir|
      if File.exists? dir
        sh "cd #{dir}; git pull"
      else
        sh "git clone git://github.com/#{git_fork}/#{dir}.git"
      end
    end
  end
    
  desc "Uninstall all Ruby merb* gems"
  task :uninstall do
    if windows
      `gem.bat list`.split("\n").select{|x| x =~ /^merb/}.map{|x| x.split(' ')[0]}.each do |gem_name|
        system("gem.bat uninstall -a -i -x #{gem_name}")
      end
    else
      sh "#{SUDO} gem list merb | grep merb | awk '{ print $1}' | xargs #{SUDO} gem uninstall"
    end
  end
    
  desc "Uninstall all JRuby merb* gems"
  task :juninstall do
    if windows
      `gem.bat list`.split("\n").select{|x| x =~ /^merb/}.map{|x| x.split(' ')[0]}.each do |gem_name|
        system("jruby -S gem.bat uninstall -a -i -x #{gem_name}")
      end
    else
      sh "#{SUDO} jruby -S gem list merb | grep merb | awk '{ print $1}' | xargs #{SUDO} jruby -S gem uninstall"
    end
  end
    
  desc "Repackage merb-<core|more|plugins> (with all subgems)"
  task :repackage do
    sh "cd merb-core; rake repackage"
    Dir.glob("merb-more/merb-*").each do |dir|
      sh "cd #{dir}; rake repackage"
    end
    Dir.glob("merb-plugins/merb_*").each do |dir|
      sh "cd #{dir}; rake repackage"
    end
  end
    
  desc "Install all Merb gems and subgems"
  task :install do
    sh "#{SUDO} gem install -l -f #{Dir.glob("merb-core/pkg/merb*.gem")[0]}"
    Dir.glob("merb-more/pkg/merb*.gem").each do |gem_name|
      sh "#{SUDO} gem install -l -f #{gem_name}"
    end
    Dir.glob("merb-more/merb-*").each do |dir|
      sh "#{SUDO} gem install -l -f #{filename_for(dir)}"
    end
    Dir.glob("merb-plugins/merb_*").each do |dir|
      sh "#{SUDO} gem install -l -f #{filename_for(dir)}"
    end
  end
  
  desc "Install all Merb gems and subgems for JRuby"
  task :jinstall do
    sh "#{SUDO} gem install -l -f #{Dir.glob("merb-core/pkg/merb*.gem")[0]}"
    Dir.glob("merb-more/pkg/merb*.gem").each do |gem_name|
      sh "#{SUDO} jruby -S gem install -l -f #{gem_name}"
    end
    Dir.glob("merb-more/merb-*").each do |dir|
      sh "#{SUDO} jruby -S gem install -l -f #{filename_for(dir)}"
    end
    Dir.glob("merb-plugins/merb_*").each do |dir|
      sh "#{SUDO} jruby -S gem install -l -f #{filename_for(dir)}"
    end
  end
  
end