4ee021282afabfc41333a10d294fc26c8e1923fa
[etcdiff.git] / etcdiff.sh
1 #!/bin/sh
2 #
3 # etcdiff (deb-etcdiff?) shows how your current /etc dir
4 # diverges from the debian default one.
5 #
6 # Copyright (C) 2008,2009,2010 Antonio Ospite <ospite@studenti.unina.it>
7 # License: GPLv2 or later
8 #
9 #set -x
10 #set -e
11
12 PROMPT_RM=-i
13
14 DEBIANMIRROR="http://ftp.it.debian.org/debian"
15
16 BASEDIR=$(dirname $0)
17 TEMPDIR=${BASEDIR}/temp
18 CACHEDIR=${BASEDIR}/cache
19 REPORTDIR=${BASEDIR}/reports
20
21 usage()
22 {
23   echo "usage: $0 <file|package|system> [<file name>|<package name>]
24
25 etcdiff shows how your /etc dir differs from the debian default one
26
27 etcdiff by explicit file list:
28     FILES='/etc/sysctl.conf /etc/updatedb.conf'
29     for file in \$FILES;
30     do
31       $0 file \$file
32     done
33
34 etcdiff bycommand generated file list
35     FILES=\$(find /etc/apache2 -type f -perm /o+r | grep -v '.dpkg-')
36     for file in \$FILES;
37     do
38       $0 file \$file
39     done
40
41 etcdiff by package name
42     $0 package cherokee
43     $0 package mlocate
44     $0 package apache2-doc
45     $0 package apache2.2-common
46     $0 package libapache2-mod-php5
47     $0 package hostapd
48
49 etcdiff the whole /etc system directory
50     $0 system
51 "
52 }
53
54 rm $PROMPT_RM -rf $TEMPDIR   && mkdir $TEMPDIR
55 rm $PROMPT_RM -rf $CACHEDIR  && mkdir $CACHEDIR
56 rm $PROMPT_RM -rf $REPORTDIR && mkdir $REPORTDIR
57
58 . $BASEDIR/etcdiff.include
59
60 case $1 in
61   file)
62     etcdiff_by_file $2
63     ;;
64   package)
65     etcdiff_by_package $2
66     ;;
67   system)
68     etcdiff_system
69     ;;
70   *)
71     usage
72     ;;
73 esac