class HoundListSync::CLI
Public Class Methods
new(base, extensions, out, logger:)
click to toggle source
# File lib/hound_list_sync/cli.rb, line 7 def initialize(base, extensions, out, logger:) @base = base @extensions = extensions @out = out @logger = logger end
Public Instance Methods
read_config(file)
click to toggle source
# File lib/hound_list_sync/cli.rb, line 46 def read_config(file) unless File.exist?(file) @logger.error("File missing: #{file}") exit(1) end JSON.parse(File.read(file)) end
run()
click to toggle source
# File lib/hound_list_sync/cli.rb, line 14 def run @logger.info("Loading base config #{@base}") base = HoundConfig.new(read_config(@base)) if @extensions.any? @logger.info("Loading extensions from #{@extensions.join(", ")}") extensions = Extensions.new( @extensions.map { |e| read_config(e) }, http: Http::Net.new(logger: @logger) ) @logger.info("Extending base config") base.extend_with(extensions) end @logger.info("Total repositories: #{base.total_repos}") @logger.info("Generating new config") config = JSON.pretty_generate(base) old_config = File.read(@out) if File.exist?(@out) if config == old_config @logger.info("Config not changed") else @logger.info("Saving to #{@out}") File.write(@out, config) end @logger.info("Done") end