gpg: add initial bare-bones wrapper
This commit is contained in:
		
							parent
							
								
									b3ea5c2595
								
							
						
					
					
						commit
						92a6a557f5
					
				
							
								
								
									
										47
									
								
								Library/Homebrew/gpg.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Library/Homebrew/gpg.rb
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user