Sha256: bd00664f31c1e9f339dcf1a2f603976231a4983db3868b6de04c87396942ea56

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

#!/usr/bin/env ruby

require 'stickler'
require 'stickler/client'

SUB_COMMANDS = %w[ push yank mirror config list delete unyank ].sort
exec_name = File.basename( $0 )

#----------------------------------------------------------------------
# parse through the top level global options, this is intercept
# --version and --help
#----------------------------------------------------------------------
global_options = Trollop::options do
  version "Stickler #{Stickler::VERSION}"
  banner <<-_
Stickler server interaction

  Usage: #{exec_name} #{SUB_COMMANDS.join("|")} [options]

  Examples:
    #{exec_name} push ./my_gem-1.0.0.gem --server http://stickler.example.com/
    #{exec_name} yank my_gem --gem-version 1.0.0 --server http://stickler.example.com/
    #{exec_name} unyank my_gem --gem-version 1.0.0 --server http://stickler.example.com/
    #{exec_name} mirror third_party_gem --gem-version 0.4.2 --upstream http://rubygems.org/ --server http://stickler.example.com/
    #{exec_name} mirror --help
    #{exec_name} config --server http://stickler.example.com --upstream http://rubygems.org/
    #{exec_name} list --server http://stickler.example.com
    #{exec_name} delete my_gem --gem-version 1.2.3 --server #http://stickler.example.com/

  Options:
_

  stop_on SUB_COMMANDS
end

#----------------------------------------------------------------------
# sub command processing
#----------------------------------------------------------------------
cmd = ARGV.shift
Trollop::die "No sub command given" unless cmd
Trollop::die "Unknown sub command #{cmd.inspect}" unless SUB_COMMANDS.include?( cmd )


case cmd
when "push"
  ::Stickler::Client::Push.new( ARGV ).run
when "yank"
  ::Stickler::Client::Yank.new( ARGV ).run
when "unyank"
  ::Stickler::Client::Unyank.new( ARGV ).run
when "delete"
  ::Stickler::Client::Delete.new( ARGV ).run
when "mirror"
  ::Stickler::Client::Mirror.new( ARGV ).run
when "config"
  ::Stickler::Client::Config.new( ARGV ).run
when "list"
  ::Stickler::Client::List.new( ARGV ).run
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stickler-2.3.0 bin/stickler