def run(*args)
      optparse(*args)

      case @mode
      when :clone
        @uri ||= @args[0]

        unless @uri
          $stderr.puts "pullr: missing the URI argument"
          exit -1
        end

        repo = RemoteRepository.new(
          :uri => @uri,
          :scm => @scm
        )

        repo.pull(@path || @args[1])
      when :update
        repo = LocalRepository.new(
          :uri => @uri,
          :path => @path,
          :scm => @scm
        )

        repo.update
      end
    end
def run(*args)
      optparse(*args)

      case @mode
      when :clone
        @uri ||= @args[0]

        unless @uri
          $stderr.puts "pullr: missing the URI argument"
          exit -1
        end

        repo = RemoteRepository.new(
          :uri => @uri,
          :scm => @scm
        )

        repo.pull(@path || @args[1])
      when :update
        repo = LocalRepository.new(
          :uri => @uri,
          :path => @path,
          :scm => @scm
        )

        repo.update
      end
    end
Runs the Command Line Interface (CLI) with the given arguments.

 @param [Array<String>] args
   Arguments to run the CLI with.