source: tags/confman-1.5.6a1/confaudit.sh @ 175

Revision 175, 2.5 KB checked in by arjun, 4 years ago (diff)

Committing confaudit.sh

  • Property svn:executable set to *
Line 
1#! /bin/bash
2# Try loading a development library first
3if [ -r ./confmancommon.sh ] ; then
4    echo "Loading development library from current working directory." >&2
5    . ./confmancommon.sh
6elif [ -r /usr/local/rescomp/lib/confmancommon.sh ] ; then
7    . /usr/local/rescomp/lib/confmancommon.sh
8else
9    echo "Can't find confmancommon.sh. Exiting." >&2
10fi
11
12quiet=0
13while getopts "q" opt ; do
14    case $opt in
15        q)
16        quiet=1
17        shift
18        ;;
19        *)
20        ;;
21    esac
22done
23
24tarball=$(conf_fetch)
25if ! [ -s $tarball ] 
26then
27    echo "Could not fetch the tarball." >&2
28    exit 1
29fi
30
31tmpcopy=$(mktemp -d -t confman)
32tmproot=$(mktemp -d -t confman)
33
34tar -xzf $tarball -C $tmpcopy
35rm -rf $tarball
36
37for layer in $LAYERS
38do
39     module="${layer}"
40     moduledir="$tmpcopy/$module"
41
42    for directory in `find $moduledir -type d -mindepth 1| grep -v "\.svn"`; do
43        tmpdir=`echo $directory | sed "s:$moduledir::"`
44        tmpdir="$tmproot${tmpdir}"
45        owner=`conf_get_prop ${directory} owner`
46        group=`conf_get_prop ${directory} group`
47        mode=`conf_get_prop ${directory} mode`
48        opts="-d -o $owner -g $group -m $mode"
49        cmd="sudo install $opts $tmpdir"
50        $cmd
51    done
52    for file in `find $moduledir -type f | grep -v "\.svn"` ; do
53        tmpfile=`echo "$file" | sed "s:$moduledir::"`
54        owner=`conf_get_prop ${file} owner`
55        group=`conf_get_prop ${file} group`
56        mode=`conf_get_prop ${file} mode`
57        opts="-Sp -o $owner -g $group -m $mode"
58        cmd="sudo install $opts $file $tmproot$tmpfile"
59        $cmd
60    done
61done
62
63for file in $SINGULARITIES
64do
65     livefile="$tmproot${file}"
66     tmpfile=`mktemp -t confman` || exit 1
67    for layer in $LAYERS ; do
68        livepart="$tmproot${file}-${layer}"
69        myfile="$tmpcopy/${layer}/${file}-${layer}"
70        if [ -f $myfile -a -f $livepart ] ; then
71                owner=`conf_get_prop ${myfile} owner`
72                group=`conf_get_prop ${myfile} group`
73                mode=`conf_get_prop     ${myfile} mode`
74                comment=`conf_get_prop  ${myfile} comment`
75            cat $livepart >> $tmpfile
76            sudo rm $livepart
77            flag=1
78        fi
79    done
80    if [ ! -z $flag ] ; then
81        opts="-Sp -o $owner -g $group -m $mode"
82        cmd="sudo install $opts $tmpfile $livefile"
83        $cmd
84    fi
85    rm -f $tmpfile
86done
87rm -rf $tmpcopy
88if [ $quiet = 0 ]
89then
90    sudo /usr/bin/diff -rPu / $tmproot | grep -v "^Only in"
91else
92    sudo /usr/bin/diff -rPuq / $tmproot | grep -v "^Only in"
93fi
94sudo rm -rf $tmproot
95
Note: See TracBrowser for help on using the repository browser.