Class: Lexicon::Common::Package::PackageIntegrityValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/lexicon/common/package/package_integrity_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(shell:) ⇒ PackageIntegrityValidator

Returns a new instance of PackageIntegrityValidator.

Parameters:



8
9
10
# File 'lib/lexicon/common/package/package_integrity_validator.rb', line 8

def initialize(shell:)
  @shell = shell
end

Instance Method Details

#integrity_states(package) ⇒ Hash{String => Boolean}

Parameters:

Returns:

  • (Hash{String => Boolean})


20
21
22
23
24
25
26
27
28
# File 'lib/lexicon/common/package/package_integrity_validator.rb', line 20

def integrity_states(package)
  sumstr = shell.execute <<~BASH
    (cd "#{package.dir}" && sha256sum -c #{package.checksum_file.basename} 2>/dev/null)
  BASH

  sumstr.scan(/(.*?): (.*?)\n/)
        .to_h
        .transform_values { |value| value == 'OK' }
end

#valid?(package) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


14
15
16
# File 'lib/lexicon/common/package/package_integrity_validator.rb', line 14

def valid?(package)
  integrity_states(package).values.all? { |v| v == true }
end