svn commit: r397963 - in head: . Keywords Mk/Scripts
Baptiste Daroussin
bapt at FreeBSD.org
Sat Sep 26 12:13:25 UTC 2015
Author: bapt
Date: Sat Sep 26 12:13:23 2015
New Revision: 397963
URL: https://svnweb.freebsd.org/changeset/ports/397963
Log:
Extend @sample to accept arguments
Maintainers can now use @sample sample_file target_file for all cases
that does not fall into the usual @sample something.sample
Reviewed by: antoine
Differential Revision: https://reviews.freebsd.org/D3734
Modified:
head/CHANGES
head/Keywords/sample.ucl
head/Mk/Scripts/functions.sh
Modified: head/CHANGES
==============================================================================
--- head/CHANGES Sat Sep 26 11:56:16 2015 (r397962)
+++ head/CHANGES Sat Sep 26 12:13:23 2015 (r397963)
@@ -10,7 +10,16 @@ in the release notes and/or placed into
All ports committers are allowed to commit to this file.
-20150926
+20150926:
+AUTHOR: bapt at FreeBSD.org
+
+ @sample now accept arguments, so it can now be used the following way:
+
+ @sample afile.sample
+ or
+ @sample path/to/example etc/target
+
+20150926:
AUTHOR: bapt at FreeBSD.org
New keywords are supported in pkg since 1.5.x:
Modified: head/Keywords/sample.ucl
==============================================================================
--- head/Keywords/sample.ucl Sat Sep 26 11:56:16 2015 (r397962)
+++ head/Keywords/sample.ucl Sat Sep 26 12:13:23 2015 (r397963)
@@ -3,6 +3,10 @@
# MAINTAINER: portmgr at FreeBSD.org
#
# @sample etc/somefile.conf.sample
+# or
+# @sample file1 file2
+#
+# Where file1 is considered as a sample file and file2 the target file
#
# This will install the somefile.conf.sample and automatically copy to
# somefile.conf if it doesn't exist. On deinstall it will remove the
@@ -14,24 +18,42 @@
# etc/pkgtools.conf.sample
# @exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
-actions: [file]
+actions: [file(1)]
+arguments: true
post-install: <<EOD
- case "%@" in
- /*) sample_file="%@" ;;
- *) sample_file="%D/%@" ;;
+ case "%1" in
+ /*) sample_file="%1" ;;
+ *) sample_file="%D/%1" ;;
esac
target_file="${sample_file%.sample}"
+ set -- %@
+ if [ $# -eq 2 ]; then
+ target_file=${2}
+ fi
+ case "${target_file}" in
+ /*) target_file="${target_file}" ;;
+ *) target_file="%D/${target_file}" ;;
+ esac
if ! [ -f "${target_file}" ]; then
/bin/cp -p "${sample_file}" "${target_file}" && \
/bin/chmod u+w "${target_file}"
fi
EOD
pre-deinstall: <<EOD
- case "%@" in
- /*) sample_file="%@" ;;
- *) sample_file="%D/%@" ;;
+ case "%1" in
+ /*) sample_file="%1" ;;
+ *) sample_file="%D/%1" ;;
esac
target_file="${sample_file%.sample}"
+ set -- %@
+ if [ $# -eq 2 ]; then
+ set -- %@
+ target_file=${2}
+ fi
+ case "${target_file}" in
+ /*) target_file="${target_file}" ;;
+ *) target_file="%D/${target_file}" ;;
+ esac
if cmp -s "${target_file}" "${sample_file}"; then
rm -f "${target_file}"
else
Modified: head/Mk/Scripts/functions.sh
==============================================================================
--- head/Mk/Scripts/functions.sh Sat Sep 26 11:56:16 2015 (r397962)
+++ head/Mk/Scripts/functions.sh Sat Sep 26 12:13:23 2015 (r397963)
@@ -82,17 +82,22 @@ parse_plist() {
@sample\ *)
set -- $line
shift
- # Ignore the actual file if it is in stagedir
- case "$@" in
- /*)
- echo "@comment ${@%.sample}"
- echo "${comment}$@"
- ;;
- *)
- echo "@comment ${cwd}/${@%.sample}"
- echo "${comment}${cwd}/$@"
- ;;
+ sample_file=$1
+ target_file=${1%.sample}
+ if [ $# -eq 2 ]; then
+ target_file=$2
+ fi
+ case "${sample_file}" in
+ /*) ;;
+ *) sample_file=${cwd}/${sample_file} ;;
esac
+ case "${target_file}" in
+ /*) ;;
+ *) target_file=${cwd}/${target_file} ;;
+ esac
+ # Ignore the actual file if it is in stagedir
+ echo "@comment ${target_file}"
+ echo "${comment}${sample_file}"
;;
# Handle [dir] Keywords
@fc\ *|@fcfontsdir\ *|@fontsdir\ *)
More information about the svn-ports-all
mailing list