Class: Browserctl::SecretResolvers::MacOSKeychain
- Defined in:
- lib/browserctl/secret_resolvers/macos_keychain.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.scheme ⇒ Object
8 |
# File 'lib/browserctl/secret_resolvers/macos_keychain.rb', line 8 def self.scheme = "keychain" |
Instance Method Details
#available? ⇒ Boolean
10 11 12 |
# File 'lib/browserctl/secret_resolvers/macos_keychain.rb', line 10 def available? RUBY_PLATFORM.include?("darwin") && system("which security > /dev/null 2>&1") end |
#resolve(reference) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/browserctl/secret_resolvers/macos_keychain.rb', line 14 def resolve(reference) service, account = reference.split("/", 2) if account.nil? raise SecretResolverError, "keychain reference must be 'service/account', got: #{reference.inspect}" end result, status = Open3.capture2("security", "find-generic-password", "-a", account, "-s", service, "-w") raise SecretResolverError, "keychain item not found: #{reference}" unless status.success? result.chomp end |