From 18e5cc0bb2a752182c807c1d2f72c9b0e0b3061b Mon Sep 17 00:00:00 2001 From: Christophe Bliard Date: Mon, 29 Jan 2024 12:22:03 +0100 Subject: [PATCH] Mark files in etc/ as config files (#183) This prevents accidentaly overwriting customizations made to those files when upgrading a package. --- lib/pkgr/distributions/base.rb | 7 +++++++ lib/pkgr/fpm_command.rb | 1 + 2 files changed, 8 insertions(+) diff --git a/lib/pkgr/distributions/base.rb b/lib/pkgr/distributions/base.rb index dd11244..fd33d95 100644 --- a/lib/pkgr/distributions/base.rb +++ b/lib/pkgr/distributions/base.rb @@ -127,6 +127,13 @@ def templates list end + def config_files + templates + .filter { |template| template.is_a?(Templates::FileTemplate) } + .map(&:target) + .filter { |target| target.start_with?("etc/") } + end + # Returns a list of tuples. def initializers_for(app_name, procfile_entries) list = [] diff --git a/lib/pkgr/fpm_command.rb b/lib/pkgr/fpm_command.rb index 82940d4..5c6a1ef 100644 --- a/lib/pkgr/fpm_command.rb +++ b/lib/pkgr/fpm_command.rb @@ -40,6 +40,7 @@ def args list << "--directories" << config.directories unless config.directories.nil? list << "--rpm-digest" << "sha256" if distribution.rpm? distribution.dependencies(config.dependencies).each{|d| list << "-d" << d} + distribution.config_files.each{|f| list << "--config-files" << f} list.compact end end