42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env ruby
 | |
| 
 | |
| require "github_api"
 | |
| require "json"
 | |
| require "colorize"
 | |
| require "benchmark"
 | |
| 
 | |
| require_relative "github_changelog_generator/helper"
 | |
| require_relative "github_changelog_generator/parser"
 | |
| require_relative "github_changelog_generator/parser_file"
 | |
| require_relative "github_changelog_generator/generator/generator"
 | |
| require_relative "github_changelog_generator/version"
 | |
| require_relative "github_changelog_generator/reader"
 | |
| 
 | |
| # The main module, where placed all classes (now, at least)
 | |
| module GitHubChangelogGenerator
 | |
|   # Main class and entry point for this script.
 | |
|   class ChangelogGenerator
 | |
|     # Class, responsible for whole change log generation cycle
 | |
|     # @return initialised instance of ChangelogGenerator
 | |
|     def initialize
 | |
|       @options = Parser.parse_options
 | |
|       @generator = Generator.new @options
 | |
|     end
 | |
| 
 | |
|     # The entry point of this script to generate change log
 | |
|     # @raise (ChangelogGeneratorError) Is thrown when one of specified tags was not found in list of tags.
 | |
|     def run
 | |
|       log = @generator.compound_changelog
 | |
| 
 | |
|       output_filename = (@options[:output]).to_s
 | |
|       File.open(output_filename, "w") { |file| file.write(log) }
 | |
|       puts "Done!"
 | |
|       puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   if __FILE__ == $PROGRAM_NAME
 | |
|     GitHubChangelogGenerator::ChangelogGenerator.new.run
 | |
|   end
 | |
| end
 | 
