diff options
author | Cam Cope <cam@dropbox.com> | 2017-01-03 20:10:03 -0800 |
---|---|---|
committer | Thom May <thom@chef.io> | 2018-01-30 11:31:16 +0000 |
commit | f1368f819ad7091e1c18b7476802040db5a58df9 (patch) | |
tree | d11cf37461552587a60c1bb0de0246d09723464e | |
parent | 874b70309905e7be2bb777e6c7409853288ef543 (diff) | |
download | chef-f1368f819ad7091e1c18b7476802040db5a58df9.tar.gz |
Avoid apt (dpkg) prompts for modified config files
-rw-r--r-- | lib/chef/provider/package/apt.rb | 13 | ||||
-rw-r--r-- | lib/chef/resource/apt_package.rb | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/chef/provider/package/apt.rb b/lib/chef/provider/package/apt.rb index 9eb8dd736a..ec9501a4b5 100644 --- a/lib/chef/provider/package/apt.rb +++ b/lib/chef/provider/package/apt.rb @@ -82,7 +82,7 @@ class Chef package_name = name.zip(version).map do |n, v| package_data[n][:virtual] ? n : "#{n}=#{v}" end - run_noninteractive("apt-get", "-q", "-y", default_release_options, options, "install", package_name) + run_noninteractive("apt-get", "-q", "-y", config_file_options, default_release_options, options, "install", package_name) end def upgrade_package(name, version) @@ -153,6 +153,17 @@ class Chef end end + def config_file_options + # It doesn't make sense to install packages in a scenario that can + # result in a prompt. Have users decide up-front whether they want to + # forcibly overwrite the config file, otherwise preserve it. + if new_resource.respond_to?(:overwrite_config_files) && new_resource.overwrite_config_files + '-o Dpkg::Options::="--force-confnew"' + else + '-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"' + end + end + def resolve_package_versions(pkg) current_version = nil candidate_version = nil diff --git a/lib/chef/resource/apt_package.rb b/lib/chef/resource/apt_package.rb index c077922a20..91c0e2836d 100644 --- a/lib/chef/resource/apt_package.rb +++ b/lib/chef/resource/apt_package.rb @@ -27,6 +27,7 @@ class Chef provides :package, os: "linux", platform_family: "debian" property :default_release, String, desired_state: false + property :overwrite_config_files, String, default: false end end |