aboutsummaryrefslogtreecommitdiff
path: root/Keywords/sample.ucl
diff options
context:
space:
mode:
Diffstat (limited to 'Keywords/sample.ucl')
-rw-r--r--Keywords/sample.ucl31
1 files changed, 31 insertions, 0 deletions
diff --git a/Keywords/sample.ucl b/Keywords/sample.ucl
new file mode 100644
index 000000000000..6c9ac688bd0d
--- /dev/null
+++ b/Keywords/sample.ucl
@@ -0,0 +1,31 @@
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+#
+# @sample etc/somefile.conf.sample
+#
+# This will install the somefile.conf.sample and automatically copy to
+# somefile.conf if it doesn't exist. On deinstall it will remove the
+# somefile.conf if it still matches the sample, otherwise it is
+# kept.
+#
+# This replaces the old pattern:
+# @unexec if cmp -s %D/etc/pkgtools.conf %D/etc/pkgtools.conf.sample; then rm -f %D/etc/pkgtools.conf; fi
+# etc/pkgtools.conf.sample
+# @exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
+
+actions: [file]
+post-install: <<EOD
+ sample_file="%D/%@"
+ target_file="${sample_file%.sample}"
+ if ! [ -f "${target_file}" ]; then
+ /bin/cp -p "${sample_file}" "${target_file}"
+ fi
+EOD
+pre-deinstall: <<EOD
+ sample_file="%D/%@"
+ target_file="${sample_file%.sample}"
+ if cmp -s "${target_file}" "${sample_file}"; then
+ rm -f "${target_file}"
+ fi
+EOD