blob: 5022254bcfd26761ee378ea750cc5ae3ba8ed2c8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# $FreeBSD$
#
# MAINTAINER: portmgr@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
# 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(1)]
arguments: true
post-install-lua: <<EOS
args = {}
for arg in string.gmatch("%@", "%S+") do
table.insert(args, arg)
end
sample_file = pkg.prefixed_path(args[1])
if args[2] == nil then
target_file = string.gsub(sample_file,'%.sample$', "")
else
target_file = pkg.prefixed_path(args[2])
end
if not pkg.stat(target_file) then
pkg.copy(sample_file, target_file)
end
EOS
pre-deinstall-lua: <<EOS
args = {}
for arg in string.gmatch("%@", "%S+") do
table.insert(args, arg)
end
sample_file = pkg.prefixed_path(args[1])
if args[2] == nil then
target_file = string.gsub(sample_file,'%.sample$', "")
else
target_file = pkg.prefixed_path(args[2])
end
if pkg.filecmp(sample_file, target_file) == 0 then
os.remove(target_file)
else
pkg.print_msg("You may need to manually remove " .. target_file .. " if it is no longer needed.")
end
EOS
|