Module: Renogen::Cli

Defined in:
lib/renogen/cli.rb,
lib/renogen/cli/param_parser.rb

Overview

Command line interface helpers

Defined Under Namespace

Classes: ParamParser

Class Method Summary collapse

Class Method Details

.initObject

Initialize the current working directory with an example change



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/renogen/cli.rb', line 36

def self.init
  # TODO: Refactor to use Config.instance.changelog_path
  Dir.mkdir('./change_log')
  puts "Created './change_log/'"

  Dir.mkdir('./change_log/next')
  puts "Created './change_log/next/'"

  File.open('./change_log/next/added_renogen_gem.yml', 'w') do |f|
    f.write("Summary:\n")
    f.write("  identifier: renogen\n")
    f.write("  link: https://github.com/DDAZZA/renogen\n")
    f.write("  summary: Added ReNoGen gem\n")
    f.write("\n")
    f.write("Detailed: |\n")
    f.write("  Added ReNoGen gem\n")
    f.write("\n")
    f.write("  Allows release notes to be generated\n")
    f.write("\n")
    f.write("Tasks:\n")
    f.write("  - $ renogen vX.Y.Z > release_vX_Y_Z.md\n")
  end

  puts "Created './change_log/next/added_renogen_gem.yml'"

  File.open('.renogen', 'w') do |f|
    f.write("changelog_path: './change_log/'\n")
  end
  puts "Created '.renogen'"
end

.new_ticket(ticket_name) ⇒ Object

Creates a new template file

Parameters:

  • ticket_name (String)


70
71
72
73
74
75
76
77
78
79
80
# File 'lib/renogen/cli.rb', line 70

def self.new_ticket(ticket_name)
  raise 'You need to provide a ticket_name' if ticket_name.nil?

  file_path = File.join(Config.instance.changelog_path, 'next', "#{ticket_name}.yml")
  File.open(file_path, 'w') do |f|
    Config.instance.default_headings.each do |h|
      f.write("#{h}:\n")
    end
  end
  puts "Created '#{file_path}'"
end

.run(args) ⇒ Object

Execute the program via command line Renogen exceptions will be rescued and printed

Parameters:

  • args (Array)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/renogen/cli.rb', line 11

def self.run(args)
  return init if args.first == 'init'
  return new_ticket(args[1]) if args.first == 'new'

  param_parser = ParamParser.new(args)
  version, options = param_parser.parse
  config_instance = Config.instance

  format = options['format'] || config_instance.output_format
  source = options['source'] || config_instance.input_source
  options['changelog_path'] ||= config_instance.changelog_path
  options['old_version'] ||= config_instance.changelog_path
  options['release_date'] ||= Date.today
  options['allowed_values'] ||= config_instance.validations

  begin
    generator = Renogen::Generator.new(version, source, format, options)
    generator.generate!
  rescue Renogen::Exceptions::Base => e
    puts e.message
    exit 1
  end
end