Class: AgentsControl::Secrets::Providers::SecretTool
- Inherits:
-
Object
- Object
- AgentsControl::Secrets::Providers::SecretTool
- Defined in:
- lib/agents_control/secrets.rb
Overview
Linux: libsecret on top of gnome-keyring or KWallet.
Instance Method Summary collapse
- #available? ⇒ Boolean
- #delete(key) ⇒ Object
- #get(key) ⇒ Object
-
#initialize(executor: Executor.new) ⇒ SecretTool
constructor
A new instance of SecretTool.
- #name ⇒ Object
-
#set(key, value) ⇒ Object
secret-tool reads the secret from stdin on its own — argv stays clean.
- #writable? ⇒ Boolean
Constructor Details
#initialize(executor: Executor.new) ⇒ SecretTool
Returns a new instance of SecretTool.
153 154 155 |
# File 'lib/agents_control/secrets.rb', line 153 def initialize(executor: Executor.new) @executor = executor end |
Instance Method Details
#available? ⇒ Boolean
159 |
# File 'lib/agents_control/secrets.rb', line 159 def available? = !binary.nil? |
#delete(key) ⇒ Object
178 179 180 |
# File 'lib/agents_control/secrets.rb', line 178 def delete(key) @executor.run(binary, "clear", "service", SERVICE, "account", key).success? end |
#get(key) ⇒ Object
163 164 165 166 |
# File 'lib/agents_control/secrets.rb', line 163 def get(key) result = @executor.run(binary, "lookup", "service", SERVICE, "account", key) result.success? ? result.stdout.chomp : nil end |
#name ⇒ Object
157 |
# File 'lib/agents_control/secrets.rb', line 157 def name = "libsecret (Linux)" |
#set(key, value) ⇒ Object
secret-tool reads the secret from stdin on its own — argv stays clean.
169 170 171 172 173 174 175 176 |
# File 'lib/agents_control/secrets.rb', line 169 def set(key, value) result = @executor.run( binary, "store", "--label=#{SERVICE} #{key}", "service", SERVICE, "account", key, stdin: value ) result.success? end |
#writable? ⇒ Boolean
161 |
# File 'lib/agents_control/secrets.rb', line 161 def writable? = true |