2017-05-10 23:18:42 +08:00
require " hbc/container/base "
module Hbc
class Container
class Gpg < Base
def self . me? ( criteria )
2017-05-19 04:24:36 +08:00
criteria . extension ( / ^(gpg)$ / )
2017-05-10 23:18:42 +08:00
end
def import_key
if @cask . gpg . nil?
2017-05-11 16:26:16 +08:00
raise CaskError , " Expected to find gpg public key in formula. Cask ' #{ @cask } ' must add: 'gpg :embedded, key_id: [Public Key ID]' or 'gpg :embedded, key_url: [Public Key URL]' "
2017-05-10 23:18:42 +08:00
end
args = if @cask . gpg . key_id
[ " --recv-keys " , @cask . gpg . key_id ]
elsif @cask . gpg . key_url
[ " --fetch-key " , @cask . gpg . key_url . to_s ]
end
@command . run! ( " gpg " , args : args )
end
def extract
2017-12-01 23:59:04 +01:00
unless gpg = which ( " gpg " , PATH . new ( ENV [ " PATH " ] , HOMEBREW_PREFIX / " bin " ) )
2017-05-10 23:18:42 +08:00
raise CaskError , " Expected to find gpg executable. Cask ' #{ @cask } ' must add: depends_on formula: 'gpg' "
end
import_key
Dir . mktmpdir do | unpack_dir |
2017-05-19 04:24:36 +08:00
@command . run! ( gpg , args : [ " --batch " , " --yes " , " --output " , Pathname ( unpack_dir ) . join ( @path . basename ( " .gpg " ) ) , " --decrypt " , @path ] )
2017-05-10 23:18:42 +08:00
extract_nested_inside ( unpack_dir )
end
end
end
end
end