Support GPG (signed data) container in Homebrew Cask
This commit is contained in:
parent
f1d4c4be78
commit
3668a7abb1
@ -6,6 +6,7 @@ require "hbc/container/criteria"
|
|||||||
require "hbc/container/dmg"
|
require "hbc/container/dmg"
|
||||||
require "hbc/container/executable"
|
require "hbc/container/executable"
|
||||||
require "hbc/container/generic_unar"
|
require "hbc/container/generic_unar"
|
||||||
|
require "hbc/container/gpg"
|
||||||
require "hbc/container/gzip"
|
require "hbc/container/gzip"
|
||||||
require "hbc/container/lzma"
|
require "hbc/container/lzma"
|
||||||
require "hbc/container/naked"
|
require "hbc/container/naked"
|
||||||
@ -40,6 +41,7 @@ module Hbc
|
|||||||
Gzip, # pure gzip
|
Gzip, # pure gzip
|
||||||
Lzma, # pure lzma
|
Lzma, # pure lzma
|
||||||
Xz, # pure xz
|
Xz, # pure xz
|
||||||
|
Gpg, # GnuPG signed data
|
||||||
Executable,
|
Executable,
|
||||||
]
|
]
|
||||||
# for explicit use only (never autodetected):
|
# for explicit use only (never autodetected):
|
||||||
|
|||||||
41
Library/Homebrew/cask/lib/hbc/container/gpg.rb
Normal file
41
Library/Homebrew/cask/lib/hbc/container/gpg.rb
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
require "tmpdir"
|
||||||
|
|
||||||
|
require "hbc/container/base"
|
||||||
|
|
||||||
|
module Hbc
|
||||||
|
class Container
|
||||||
|
class Gpg < Base
|
||||||
|
def self.me?(criteria)
|
||||||
|
criteria.extension(/GPG/n)
|
||||||
|
end
|
||||||
|
|
||||||
|
def import_key
|
||||||
|
if @cask.gpg.nil?
|
||||||
|
raise CaskError, "Expected to find gpg public key in formula. Cask '#{@cask}' must add: key_id or key_url"
|
||||||
|
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
|
||||||
|
if (gpg = which("gpg")).nil?
|
||||||
|
raise CaskError, "Expected to find gpg executable. Cask '#{@cask}' must add: depends_on formula: 'gpg'"
|
||||||
|
end
|
||||||
|
|
||||||
|
import_key
|
||||||
|
|
||||||
|
Dir.mktmpdir do |unpack_dir|
|
||||||
|
@command.run!(gpg, args: ["--batch", "--yes", "--output", Pathname(unpack_dir).join(File.basename(@path.basename)), "--decrypt", @path])
|
||||||
|
|
||||||
|
extract_nested_inside(unpack_dir)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user