Edit

kmx.io/rbpkg/bin/rbpkg_ci

Branch :

  • bin/rbpkg_ci
  • #!/usr/bin/env ruby
    load "#{File.dirname(File.dirname(__FILE__))}/lib/rbpkg.rb"
    
    $ARGS = ARGV
    
    def shift
      usage if $ARGS == []
      arg = $ARGS[0]
      $ARGS = $ARGS[1..] || []
      arg
    end
    
    verbose_level = 2   # print command output
    case $ARGS[0]
    when "-v"
      verbose_level = 3 # print all messages
      shift
    when "-q"
      verbose_level = 1 # print commands
      shift
    when "-qq"
      verbose_level = 0 # print nothing
      shift
    end
    
    Rbpkg.init("rbpkg_ci", verbose_level, Rbpkg.ci_log_dir, Rbpkg.ci_status_dir)
    Rbpkg.ci_init
    
    def usage()
      STDERR.puts "Usage: #{File.basename($0)} REPO BRANCH COMMIT"
      exit 1
    end
    
    def rbpkg_ci
      case $ARGS[0]
      when "--clean"
        cmd = "rm -rf #{sh_quote(Rbpkg.ci_dir)}"
        verbose(1, cmd)
        raise "command failed: #{cmd.inspect}" unless system(cmd)
        Rbpkg.ci_init
        Rbpkg::Log.ok_all
        exit 0
      when "-h"
        usage
      when "--help"
        usage
      when "--upgrade"
        Rbpkg.upgrade_self
        shift
      end
      repo = shift
      branch = $ARGS[0] ? shift : nil
      commit = $ARGS[0] ? shift : nil
      usage unless $ARGS == []
      Rbpkg::Repos.repo(repo).ci(branch, commit)
      Rbpkg::Log.ok_all
    end
    
    begin
      rbpkg_ci
    rescue => error
      verbose(-1, error.backtrace.reverse.join("\n"))
      verbose(-1, "#{error.class.name}: #{error.message}")
      exit 1
    end