Sha256: e317324fc0485d07307951fa1cf6683230215fd389b466eb4edaa472bc0958fe

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

#!/usr/bin/env ruby

require 'logger'
require 'optparse'
require 'lerna/runner'
require 'lerna/strategy'

logger = Logger.new(STDOUT)
logger.level = Logger::INFO

options = {
  strategies: %w[ wall external-only internal-only ],
  system: method(:system)
}

executable = File.basename(__FILE__)

parser = OptionParser.new { |opts|
  opts.banner = "Usage: #{executable} [options]"
  opts.on(
    '-s', '--strategies STRATEGIES', String,
    'Strategies in order of precedence, separated by commas',
    "Default is #{options[:strategies].join(',')}",
    "Available: #{Lerna::Strategy.registry.keys.join(' ')}"
  ) do |str|
    options[:strategies] = str.split(/,/)
  end
  opts.on(
    '-d', '--dry-run',
    'Just log the actions that would be taken'
  ) do
    options[:system] = ->(*args) { LOGGER.call(args.join(' ')) }
  end
  opts.on(
    '-v', '--verbose',
    'Log debugging information'
  ) do
    logger.level = Logger::DEBUG
  end
  opts.on(
    '-h', '--help',
    'Display this help message and exit'
  ) do
    puts opts
    exit
  end
}
parser.parse!

runner = Lerna::Runner.new(
  logger: logger,
  strategies: options[:strategies],
  system: options[:system]
)

trap('TERM') {
  logger.info('Exiting')
  exit
}

loop do
  runner.run
  sleep 2
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lerna-0.1.1 bin/lerna