Module: Metanorma::Release::CLI

Defined in:
lib/metanorma/release/cli.rb

Class Method Summary collapse

Class Method Details

.run(argv) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/metanorma/release/cli.rb', line 10

def run(argv)
  command = argv.shift
  case command
  when 'package'   then run_package(argv)
  when 'publish'   then run_publish(argv)
  when 'aggregate' then run_aggregate(argv)
  when nil
    warn 'Usage: metanorma-release <package|publish|aggregate> [options]'
    exit 2
  else
    warn "Unknown command: #{command}"
    exit 2
  end
end

.run_aggregate(argv) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/metanorma/release/cli.rb', line 39

def run_aggregate(argv)
  config = parse_aggregate_args(argv)
  result = AggregateCommand.new(config).call
  print_aggregate_result(result)
  if config.min_documents.positive? && result.documents.length < config.min_documents
    warn "Error: Found #{result.documents.length} documents, minimum is #{config.min_documents}"
    exit 1
  end
  exit(result.failed_repos.empty? ? 0 : 1)
end

.run_package(argv) ⇒ Object



25
26
27
28
29
30
# File 'lib/metanorma/release/cli.rb', line 25

def run_package(argv)
  config = parse_package_args(argv)
  result = PackageCommand.new(config).call
  print_package_result(result, config.dest)
  exit(result.failed.empty? ? 0 : 1)
end

.run_publish(argv) ⇒ Object



32
33
34
35
36
37
# File 'lib/metanorma/release/cli.rb', line 32

def run_publish(argv)
  config = parse_publish_args(argv)
  result = PublishCommand.new(config).call
  print_publish_result(result)
  exit(result.failed.empty? ? 0 : 1)
end