aboutsummaryrefslogtreecommitdiff
path: root/Keywords
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2014-04-12 03:39:02 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2014-04-12 03:39:02 +0000
commit4070b125519e180a901b0c14d163885f3c375957 (patch)
treeb5235113da17195fc36663198e7440dd31ce2cc8 /Keywords
parent94e8164d5caa4db62a43b41aa03103b9c65dc4cf (diff)
downloadports-4070b125519e180a901b0c14d163885f3c375957.tar.gz
ports-4070b125519e180a901b0c14d163885f3c375957.zip
Notes
Diffstat (limited to 'Keywords')
-rw-r--r--Keywords/pkg_install.awk31
-rw-r--r--Keywords/sample.yaml29
2 files changed, 60 insertions, 0 deletions
diff --git a/Keywords/pkg_install.awk b/Keywords/pkg_install.awk
new file mode 100644
index 000000000000..e4207d744d03
--- /dev/null
+++ b/Keywords/pkg_install.awk
@@ -0,0 +1,31 @@
+# $FreeBSD$
+#
+# MAINTAINER: portmgr@FreeBSD.org
+#
+# This file handles converting keywords to pkg_install compatible format.
+# It will be removed once pkg_install is EOL.
+#
+
+# @sample somefile.conf.sample
+# ->
+# @comment begin @sample somefile.conf.sample
+# @unexec if cmp -s %D/etc/somefile.conf %D/etc/somefile.conf.sample; then rm -f %D/etc/somefile.conf; fi
+# etc/somefile.conf.sample
+# @exec if ! [ -f %D/etc/somefile.conf ]; then cp %D/etc/somefile.conf.sample %D/etc/somefile.conf; fi
+# @comment end @sample somefile.conf.sample
+#
+$1 == "@sample" {
+ sample_file=$2
+ # Take out .sample
+ target_file=substr(sample_file, 0, length(sample_file) - 7)
+ print "@comment begin " $0
+ print "@unexec if cmp -s '%D/" target_file "' '%D/" sample_file "'; then rm -f '%D/" target_file "'; fi"
+ print sample_file
+ print "@exec if ! [ -f '%D/" target_file "' ]; then /bin/cp -p '%D/" sample_file "' '%D/" target_file "'; fi"
+ print "@comment end " $0
+ next
+}
+# Print everything else as-is
+{
+ print $0
+}
diff --git a/Keywords/sample.yaml b/Keywords/sample.yaml
new file mode 100644
index 000000000000..4d56793acca1
--- /dev/null
+++ b/Keywords/sample.yaml
@@ -0,0 +1,29 @@
+# $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: |
+ sample_file="%D/%@"
+ target_file="${sample_file%.sample}"
+ if ! [ -f "${target_file}" ]; then
+ /bin/cp -p "${sample_file}" "${target_file}"
+ fi
+pre-deinstall: |
+ sample_file="%D/%@"
+ target_file="${sample_file%.sample}"
+ if cmp -s "${target_file}" "${sample_file}"; then
+ rm -f "${target_file}"
+ fi