Class: SecretKeys::CLI::Encrypt
- Inherits:
-
Base
- Object
- Base
- SecretKeys::CLI::Encrypt
show all
- Defined in:
- lib/secret_keys/cli.rb
Direct Known Subclasses
Edit
Constant Summary
Constants inherited
from Base
Base::MAX_SUMMARY_LENGTH
Instance Attribute Summary
Attributes inherited from Base
#input, #secret_key
Instance Method Summary
collapse
Methods inherited from Base
#format, #initialize, #secrets
Instance Method Details
#action_name ⇒ Object
182
183
184
|
# File 'lib/secret_keys/cli.rb', line 182
def action_name
"encrypt"
end
|
#parse_additional_options(opts) ⇒ Object
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
# File 'lib/secret_keys/cli.rb', line 186
def parse_additional_options(opts)
opts.separator("\nEncrypt options:")
@new_secret_key = nil
opts.on("--new-secret-key=NEW_SECRET", String, *split(<<~DOC)) do |value|
Encryption key used to encrypt strings in the file on output.
This option can be used to change the encryption key. If set to '-', read from STDIN.
DOC
@new_secret_key = get_secret_key(value)
end
@in_place = false
opts.on("-i", "--in-place", "Update the input file instead of writing to stdout.") do |value|
@in_place = true
end
@encrypt_all = false
opts.on("--encrypt-all", "Encrypt all keys in the file") do |value|
@encrypt_all = value
end
end
|
#run! ⇒ Object
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
# File 'lib/secret_keys/cli.rb', line 208
def run!
if @new_secret_key && !@new_secret_key.empty?
secrets.encryption_key = @new_secret_key
end
if @encrypt_all
secrets.each_key do |key|
secrets.encrypt!(key)
end
end
if @in_place
raise ArgumentError, "Cannot perform in place editing on streams" unless @input.is_a?(String)
contents = encrypted_file_contents
File.write(@input, contents)
else
$stdout.write(encrypted_file_contents)
$stdout.flush
end
end
|