class Giteaucrat::Runner

Public Instance Methods

copyrights() click to toggle source
# File lib/giteaucrat/runner.rb, line 64
def copyrights
  repo.write_copyrights!
  repo.commit!("#{defaults[:commit_keyword]}: Update copyrights in source code") if options[:commit]
  FileUtils.mkdir_p(::File.join(path, 'tmp'))
  ::File.write(::File.join(path, 'tmp', 'giteaucrat_authors.yml'), Author.to_yaml)
end

Private Instance Methods

defaults() click to toggle source
# File lib/giteaucrat/runner.rb, line 73
def defaults
  @defaults ||= begin
    Encoding.default_external = 'utf-8'
    Encoding.default_internal = 'utf-8'

    options = Thor::CoreExt::HashWithIndifferentAccess.new(self.options.dup)
    options[:config] = ::File.join(options[:path], 'config', 'giteaucrat.yml')

    if ::File.file?(options[:config])
      config = YAML.load_file(options[:config]) || {}
      options.merge!(config)
    end

    config = options.each_with_object({}) do |(key, value), result|
      unless %w[config git path timeout commit].include?(key)
        result[key] = value
      end
    end.to_yaml

    unless ::File.file?(options[:config])
      FileUtils.mkdir_p(::File.dirname(options[:config]))
      ::File.write(options[:config], config)
    end

    Dir.chdir(path)
    Repo.defaults = { git: options[:git], git_timeout: options[:timeout].to_s }
    options
  end
end
path() click to toggle source
# File lib/giteaucrat/runner.rb, line 103
def path
  options[:path]
end
repo() click to toggle source

@return [Giteaucrat::Repo]

# File lib/giteaucrat/runner.rb, line 108
def repo
  @repo ||= Repo.new(defaults)
end