mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-25 00:51:21 +00:00
4070b12551
It accepts a file (must end in .sample, this is not configurable):
@sample file.conf.sample
This will install file.conf.sample and copy it to file.conf. The file.conf
will be removed if it matches file.conf.sample on deinstall.
This replaces older patterns of:
@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
[1] This somewhat obsoletes work in ports/157168 which added CONF_FILES,
but we have been moving towards more logic in pkg-plist where possible
and less magical macros. Though this thinking does clash with autoplist
ideas. We may still want CONF_FILES, which just drops a list of
@sample entries into the plist anyway.
- Add a Keywords/pkg_install.awk and hook it into generate-plist. This is
for pkg_install compatibility since it does not know how to read
Keywords/sample.yaml.
This file gives us a strategy to implement more keywords before
pkg_install is EOL.
Keywords are documented here:
bffc31420b
- This needs to be documented in PH and portlint support added still.
PR: ports/157168 [1]
Discussed with: bapt
Reviewed by: bapt
Requested by: many
With hat: portmgr
30 lines
878 B
YAML
30 lines
878 B
YAML
# $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
|