You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
995 B
Plaintext
55 lines
995 B
Plaintext
2 years ago
|
#!/bin/sh
|
||
|
set -e
|
||
|
|
||
|
if [ "$VCS" = git ]; then
|
||
|
rm -rf .git
|
||
|
file=.gitignore
|
||
|
elif [ "$VCS" = hg ]; then
|
||
|
rm -rf .hg
|
||
|
file=.hgignore
|
||
|
elif [ "$VCS" = bzr ]; then
|
||
|
rm -rf .bzr
|
||
|
file=.bzrignore
|
||
|
elif [ "$VCS" = darcs ]; then
|
||
|
rm -rf _darcs
|
||
|
file=.darcsignore
|
||
|
fi
|
||
|
|
||
|
managed_by_etckeeper="managed by etckeeper"
|
||
|
|
||
|
if ! grep -q "$managed_by_etckeeper" "$file"; then
|
||
|
exit 0
|
||
|
else
|
||
|
realfile="$file"
|
||
|
if command -v mktemp >/dev/null; then
|
||
|
tempfile="mktemp"
|
||
|
elif command -v tempfile >/dev/null; then
|
||
|
tempfile="tempfile"
|
||
|
else
|
||
|
echo "etckeeper warning: can't find tempfile or mktemp" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
file=$($tempfile)
|
||
|
otherentries=
|
||
|
skipping=
|
||
|
while read -r line; do
|
||
|
if echo "$line" | grep -q "$managed_by_etckeeper"; then
|
||
|
if [ ! "$skipping" ]; then
|
||
|
skipping=1
|
||
|
else
|
||
|
skipping=
|
||
|
fi
|
||
|
elif [ ! "$skipping" ]; then
|
||
|
echo "$line" >> "$file"
|
||
|
otherentries=1
|
||
|
fi
|
||
|
done <"$realfile"
|
||
|
|
||
|
if [ "$otherentries" ]; then
|
||
|
mv -f "$file" "$realfile"
|
||
|
else
|
||
|
rm -f "$file"
|
||
|
rm -f "$realfile"
|
||
|
fi
|
||
|
fi
|