Class: Commands::Update

Inherits:
Object show all
Defined in:
lib/commands/plugin.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_command) ⇒ Update

Returns a new instance of Update.



803
804
805
# File 'lib/commands/plugin.rb', line 803

def initialize(base_command)
  @base_command = base_command
end

Instance Method Details

#optionsObject



807
808
809
810
811
812
813
814
815
816
# File 'lib/commands/plugin.rb', line 807

def options
  OptionParser.new do |o|
    o.set_summary_indent('  ')
    o.banner =    "Usage: #{@base_command.script_name} update [name [name]...]"
    o.on(         "-r REVISION", "--revision REVISION",
                  "Checks out the given revision from subversion.",
                  "Ignored if subversion is not used.") { |v| @revision = v }
    o.define_head "Update plugins."
  end
end

#parse!(args) ⇒ Object



818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
# File 'lib/commands/plugin.rb', line 818

def parse!(args)
  options.parse!(args)
  root = @base_command.environment.root
  cd root
  args = Dir["vendor/plugins/*"].map do |f|
    File.directory?("#{f}/.svn") ? File.basename(f) : nil
  end.compact if args.empty?
  cd "vendor/plugins"
  args.each do |name|
    if File.directory?(name)
      puts "Updating plugin: #{name}"
      system("svn #{$verbose ? '' : '-q'} up \"#{name}\" #{@revision ? "-r #{@revision}" : ''}")
    else
      puts "Plugin doesn't exist: #{name}"
    end
  end
end