Class: ThemeCheck::Packager

Inherits:
Object
  • Object
show all
Defined in:
lib/theme_check/packager.rb

Constant Summary collapse

ROOT =
File.expand_path('../../..', __FILE__)
PACKAGING_DIR =
File.join(ROOT, 'packaging')
BUILDS_DIR =
File.join(PACKAGING_DIR, 'builds', ThemeCheck::VERSION)

Instance Method Summary collapse

Constructor Details

#initializePackager

Returns a new instance of Packager.



8
9
10
# File 'lib/theme_check/packager.rb', line 8

def initialize
  FileUtils.mkdir_p(BUILDS_DIR)
end

Instance Method Details

#build_homebrewObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/theme_check/packager.rb', line 12

def build_homebrew
  root_dir = File.join(PACKAGING_DIR, 'homebrew')

  build_path = File.join(BUILDS_DIR, "theme-check.rb")
  puts "\nBuilding Homebrew package"

  puts "Generating formula..."
  File.delete(build_path) if File.exist?(build_path)

  spec_contents = File.read(File.join(root_dir, 'theme_check.base.rb'))
  spec_contents = spec_contents.gsub('THEME_CHECK_VERSION', ThemeCheck::VERSION)

  puts "Grabbing sha256 checksum from Rubygems.org"
  require 'digest/sha2'
  require 'open-uri'
  gem_checksum = URI.open("https://rubygems.org/downloads/theme-check-#{ThemeCheck::VERSION}.gem") do |io|
    Digest::SHA256.new.hexdigest(io.read)
  end

  puts "Got sha256 checksum for gem: #{gem_checksum}"
  spec_contents = spec_contents.gsub('THEME_CHECK_GEM_CHECKSUM', gem_checksum)

  puts "Writing generated formula\n  To: #{build_path}\n\n"
  File.write(build_path, spec_contents)
end