public
Description: Usefull scripts and Rake tasks
Clone URL: git://github.com/hipertracker/merb-scripts.git
Search Repo:
Jarosław Zabiełło (author)
Thu Mar 27 22:26:45 -0700 2008
commit  650a125eada4d788b53eef35645e7f647d12d22f
tree    e14f855b922af3d5382f55dfe9f0747f4d61eb11
parent  1e155c81e4e23cfc88a5d7c7fe53614cade352d0
merb-scripts / Rakefile
100644 92 lines (82 sloc) 2.93 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
85
86
87
88
89
90
91
92
namespace :merb do
 
  task :init do
    @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
  end
 
  desc "Pull merb-core, merb-more, merb-plugins"
  task :pull do
    Rake::Task['merb:init'].invoke
    %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
    Rake::Task['merb:init'].invoke
    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
    Rake::Task['merb:init'].invoke
    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
    Rake::Task['merb:init'].invoke
    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
    Rake::Task['merb:init'].invoke
    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
    Rake::Task['merb:init'].invoke
    sh "#{@sudo} jruby -S 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