forked from kowoba/debian-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
etc-update
executable file
·54 lines (51 loc) · 1.63 KB
/
etc-update
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
#! /bin/bash
# -----------------------------------------------------------------------
# Interactively clean out *.dpkg*-filer in /etc
#
# PUPPET CONTROLED: pmodule_server_base
# -----------------------------------------------------------------------
OLDIES=($(find /etc -name '*.dpkg-old' -o -name '*.dpkg-obsolete' -o -name '*.dpkg-remove' -o -name '*.dpkg-tmp'))
if test -n "${OLDIES[0]}" ; then
echo "Old files:"
ls -l ${OLDIES[@]}
echo -n "Delete all old files? [Y/I/n]: "
read svar ; svar=${svar:-Y}
case $svar in
y|Y) rm ${OLDIES[@]} ;;
i|I) rm -i ${OLDIES[@]} ;;
*) echo "Skipped" ;;
esac
fi
NEWIES=($(find /etc -name '*.dpkg-dist' -o -name '*.dpkg-new' -o -name '*.dpkg-bak'))
if test -n "${NEWIES[0]}" ; then
echo "New files:"
ls -l ${NEWIES[@]} ${NEWIES[@]%.dpkg-*}
echo -n "Replace all old files with newer and delete old? [Y/I/n]: "
read svar ; svar=${svar:-Y}
case $svar in
y|Y) OPT="" ;;
i|I) OPT="-i" ;;
*) OPT="exit" ;;
esac
if test "${OPT}" != "exit" ; then
for file in ${NEWIES[@]} ; do
ls -l "${file}"
if test -f "${file%.dpkg-*}" ; then
ls -l "${file%.dpkg-*}"
if test $(stat --printf="%Y" "${file%.dpkg-*}") -lt $(stat --printf="%Y" "${file}") ; then
mv -v ${OPT} "${file}" "${file%.dpkg-*}"
else
rm -v ${OPT} "${file}"
fi
else
rm -v ${OPT} "${file}"
fi
echo
done
fi
fi
REMAINS=($(find /etc -name '*.dpkg-*'))
if test -n "${REMAINS[0]}" ; then
echo "Remaining files:"
ls -l ${REMAINS[@]} ${REMAINS[@]%.dpkg-*}
fi