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.



749
750
751
# File 'lib/commands/plugin.rb', line 749

def initialize(base_command)
  @base_command = base_command
end

Instance Method Details

#optionsObject



753
754
755
756
757
758
759
760
761
762
# File 'lib/commands/plugin.rb', line 753

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



764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
# File 'lib/commands/plugin.rb', line 764

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