aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/gpg.rb
diff options
context:
space:
mode:
authorDominyk Tiller2016-08-10 04:50:59 +0100
committerDominyk Tiller2016-08-12 23:46:42 +0100
commit92a6a557f5778a9b1a72a11ab49cf6b2ce79cf68 (patch)
treea174f3d2aebb71c888ebd4771cd7752d08a4932a /Library/Homebrew/gpg.rb
parentb3ea5c259592697145c7150e71ae0bf886424398 (diff)
downloadbrew-92a6a557f5778a9b1a72a11ab49cf6b2ce79cf68.tar.bz2
gpg: add initial bare-bones wrapper
Diffstat (limited to 'Library/Homebrew/gpg.rb')
-rw-r--r--Library/Homebrew/gpg.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/Library/Homebrew/gpg.rb b/Library/Homebrew/gpg.rb
new file mode 100644
index 000000000..166985e6d
--- /dev/null
+++ b/Library/Homebrew/gpg.rb
@@ -0,0 +1,47 @@
+require "utils"
+
+class Gpg
+ # Should ideally be using `GPGRequirement.new.gpg2`, etc to get path here but
+ # calling that directly leads to:
+ # requirement.rb:139:in `which_all': uninitialized constant Requirement::ORIGINAL_PATHS (NameError)
+ # when i.e. including the gpg syntax in wget. Not problematic if not used by formula code.
+ # For now, the path determination blob of code has been semi-modified for here.
+ # Look into this more.
+ def self.gpg
+ which("gpg") do |gpg|
+ gpg_short_version = Utils.popen_read(gpg, "--version")[/\d\.\d/, 0]
+ next unless gpg_short_version
+ Version.create(gpg_short_version.to_s) == Version.create("2.0")
+ end
+ end
+
+ def self.gpg2
+ which("gpg2") do |gpg2|
+ gpg2_short_version = Utils.popen_read(gpg2, "--version")[/\d\.\d/, 0]
+ next unless gpg2_short_version
+ Version.create(gpg2_short_version.to_s) == Version.create("2.0")
+ end
+ end
+
+ GPG_EXECUTABLE = gpg2 || gpg
+
+ def self.available?
+ File.exist?(GPG_EXECUTABLE.to_s) && File.executable?(GPG_EXECUTABLE)
+ end
+
+ def self.create_test_key(path)
+ odie "No GPG present to test against!" unless available?
+
+ (path/"batch.gpg").write <<-EOS.undent
+ Key-Type: RSA
+ Key-Length: 2048
+ Subkey-Type: RSA
+ Subkey-Length: 2048
+ Name-Real: Testing
+ Name-Email: testing@foo.bar
+ Expire-Date: 1d
+ %commit
+ EOS
+ system GPG_EXECUTABLE, "--batch", "--gen-key", "batch.gpg"
+ end
+end