lib/chef/knife/encrypt_update.rb in chef-vault-2.0.2 vs lib/chef/knife/encrypt_update.rb in chef-vault-2.1.0
- old
+ new
@@ -23,12 +23,12 @@
require File.expand_path('../mixin/helper', __FILE__)
include ChefVault::Mixin::KnifeCompat
include ChefVault::Mixin::Helper
end
- banner "knife encrypt update [VAULT] [ITEM] [VALUES] "\
- "--mode MODE --search SEARCH --admins ADMINS --json FILE"
+ banner "knife encrypt update VAULT ITEM VALUES "\
+ "--mode MODE --search SEARCH --admins ADMINS --json FILE --file FILE"
option :mode,
:short => '-M MODE',
:long => '--mode MODE',
:description => 'Chef mode to run in default - solo'
@@ -46,28 +46,38 @@
option :json,
:short => '-J FILE',
:long => '--json FILE',
:description => 'File containing JSON data to encrypt'
+ option :file,
+ :long => '--file FILE',
+ :description => 'File to be added to vault item as file-content'
+
def run
vault = @name_args[0]
item = @name_args[1]
values = @name_args[2]
search = config[:search]
admins = config[:admins]
json_file = config[:json]
+ file = config[:file]
set_mode(config[:mode])
- if vault && item && ((values || json_file) || (search || admins))
+ if vault && item && ((values || json_file || file) || (search || admins))
begin
vault_item = ChefVault::Item.load(vault, item)
merge_values(values, json_file).each do |key, value|
vault_item[key] = value
- end
+ end
+ if file
+ vault_item["file-name"] = File.basename(file)
+ vault_item["file-content"] = File.open(file){ |file| file.read() }
+ end
+
vault_item.clients(search) if search
vault_item.admins(admins) if admins
vault_item.save
rescue ChefVault::Exceptions::KeysNotFound,
@@ -85,6 +95,6 @@
def show_usage
super
exit 1
end
end
-
\ No newline at end of file
+