diff --git a/lib/dpl/provider/packagecloud.rb b/lib/dpl/provider/packagecloud.rb index ee8af73cf..f200ec792 100644 --- a/lib/dpl/provider/packagecloud.rb +++ b/lib/dpl/provider/packagecloud.rb @@ -86,7 +86,7 @@ def get_source_files_for(orig_filename) def push_app packages = [] - glob_args = ["**/*"] + glob_args = Array(options.fetch(:package_glob, '**/*')) Dir.chdir(options.fetch(:local_dir, Dir.pwd)) do Dir.glob(*glob_args) do |filename| unless File.directory?(filename) diff --git a/spec/provider/packagecloud_spec.rb b/spec/provider/packagecloud_spec.rb index b9acd8e0c..a0560807c 100644 --- a/spec/provider/packagecloud_spec.rb +++ b/spec/provider/packagecloud_spec.rb @@ -32,4 +32,25 @@ end -end \ No newline at end of file + describe "#push_app" do + it 'defaults to searching everywhere' do + expect(Dir).to receive(:glob).with('**/*') + expect { provider.push_app }.to raise_error(DPL::Error) + end + + it 'accepts and uses a string glob' do + provider.options.update(:package_glob => 'foo*.gem') + + expect(Dir).to receive(:glob).with('foo*.gem') + expect { provider.push_app }.to raise_error(DPL::Error) + end + + it 'accepts and uses an array of globs' do + provider.options.update(:package_glob => ['*.rpm', '**/*.deb']) + + expect(Dir).to receive(:glob).with('*.rpm', '**/*.deb') + expect { provider.push_app }.to raise_error(DPL::Error) + end + end + +end