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
2018-07-14 03:25:42 +02:00
@command . run! ( " gpg " ,
args : args ,
env : { " PATH " = > PATH . new ( Formula [ " gnupg " ] . opt_bin , ENV [ " PATH " ] ) } )
2017-05-10 23:18:42 +08:00
end
def extract
import_key
Dir . mktmpdir do | unpack_dir |
2018-07-14 03:25:42 +02:00
@command . run! ( " gpg " ,
args : [ " --batch " , " --yes " , " --output " , Pathname ( unpack_dir ) . join ( @path . basename ( " .gpg " ) ) , " --decrypt " , @path ] ,
env : { " PATH " = > PATH . new ( Formula [ " gnupg " ] . opt_bin , ENV [ " PATH " ] ) } )
2017-05-10 23:18:42 +08:00
extract_nested_inside ( unpack_dir )
end
end
2018-07-14 03:25:42 +02:00
def dependencies
@dependencies || = [ Formula [ " gnupg " ] ]
end
2017-05-10 23:18:42 +08:00
end
end
end