diff --git a/lib/zanzibar/actions/bundle.rb b/lib/zanzibar/actions/bundle.rb index c87ba68..b615b48 100644 --- a/lib/zanzibar/actions/bundle.rb +++ b/lib/zanzibar/actions/bundle.rb @@ -92,9 +92,10 @@ module Zanzibar downloaded_secrets = {} remote_secrets.each do |key, secret| + full_path = secret['prefix'] ? File.join(@setting['secret_dir'], secret['prefix']) : @setting['secret_dir'] downloaded_secrets[key] = download_one_secret(secret['id'], secret['label'], - @settings['secret_dir'], + full_path, args, secret['name'] || "#{secret['id']}_password") diff --git a/spec/files/Zanzifile b/spec/files/Zanzifile index 4c2e767..39c1fe3 100644 --- a/spec/files/Zanzifile +++ b/spec/files/Zanzifile @@ -9,3 +9,7 @@ secrets: ssh_key: id: 2345 label: Private Key + prefix_ssh_key: + id: 2345 + label: Private Key + prefix: ssh diff --git a/spec/lib/zanzibar/actions/bundle_spec.rb b/spec/lib/zanzibar/actions/bundle_spec.rb index ca2f0e6..936b861 100644 --- a/spec/lib/zanzibar/actions/bundle_spec.rb +++ b/spec/lib/zanzibar/actions/bundle_spec.rb @@ -50,6 +50,12 @@ describe Zanzibar::Cli do expect(FakeFS::FileTest.file? File.join('secrets', 'zanzi_key')).to be(true) end + it 'should download a file to a prefix' do + expect(FakeFS::FileTest.file? File.join('secrets/ssh', 'zanzi_key')).to be(false) + expect { subject.bundle }.to output(/Finished downloading secrets/).to_stdout + expect(FakeFS::FileTest.file? File.join('secrets/ssh', 'zanzi_key')).to be(true) + end + it 'should create a .gitignore' do expect(FakeFS::FileTest.file? File.join('secrets', '.gitignore')).to be(false) expect { subject.bundle }.to output(/Finished downloading secrets/).to_stdout