blob: 1b6441a04a232ceebe620cd92a428d3c16750998 (
plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#!/bin/sh
set -e
if [ "$VCS" = git ] && [ ! -e .gitignore ]; then
file=.gitignore
elif [ "$VCS" = hg ] && [ ! -e .hgignore ]; then
file=.hgignore
elif [ "$VCS" = bzr ] && [ ! -e .bzrignore ]; then
file=.bzrignore
elif [ "$VCS" = darcs ] && [ ! -e .darcsignore ]; then
file=.darcsignore
fi
if [ -z "$file" ] || [ -e "$file" ]; then
exit 0
fi
nl() {
echo >>$file
}
comment() {
comment="$1"
echo "# $comment" >>$file
}
ignore() {
glob="$1"
case "$VCS" in
git|bzr)
echo "$glob" >> $file
;;
hg)
# rather than converting the glob to a regexp, just
# configure hg to use globs
if [ -z "$hg_syntax_printed" ]; then
comment "use glob syntax"
echo "syntax: glob" >> $file
nl
hg_syntax_printed=1
fi
echo "$glob" >> $file
;;
darcs)
# darcs doesn't understand globs, so we need to translate
# them into regexs. Not a complete converter, but suitable
# for given globs.
if [ "${glob%\*}" != "$glob" ]; then
glob="${glob%\*}"
else
glob="$glob"'($|/)'
fi
if [ "${glob#\*}" != "$glob" ]; then
glob="${glob#\*}"
else
glob='(^|/)'"$glob"
fi
glob="$( printf %s $glob | sed -e 's/\./\\./g;s/\*/[^\/]*/g;' )"
echo "$glob" >> $file
esac
}
if [ "$VCS" = darcs ]; then
darcs setpref boringfile .darcsignore
fi
if [ "$LOWLEVEL_PACKAGE_MANAGER" = dpkg ]; then
comment "new and old versions of conffiles, stored by dpkg"
ignore "*.dpkg-*"
nl
elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "rpm" ]; then
comment "new and old versions of conffiles, stored by apt/rpm"
ignore "*.rpm*"
nl
elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "pacman-g2" ]; then
comment "new and old versions of conffiles, stored by pacman"
ignore "*.pacnew"
ignore "*.pacorig"
ignore "*.pacsave"
nl
fi
comment "mount(8) records system state here, no need to store these"
ignore blkid.tab
ignore blkid.tab.old
nl
comment "some other files in /etc that typically do not need to be tracked"
ignore nologin
ignore ld.so.cache
ignore mtab
ignore .pwd.lock
ignore network/run
ignore adjtime
ignore lvm/cache
nl
comment "editor backup files"
ignore "*~"
nl
|