# File lib/commands/plugin/commands.rb, line 90
    def parse!(args=ARGV)
      general, sub = split_args(args)
      options.parse!(general)
      
      command = general.shift
      if command =~ /^(list|discover|install|source|unsource|sources|remove|update|about|search)$/
        command = Commands.const_get(command.capitalize).new(self)
        command.parse!(sub)
      elsif command =~ /^(pack:install|pack:uninstall|pack:about)$/
        command_name = command.split(':')[1]
        command = Commands::Pack.const_get(command_name.capitalize).new(self)
        command.parse!(sub)
      else
        puts "Unknown command: #{command}"
        puts options
        exit 1
      end
    end