source: projects/proc-rpmnew/trunk/proc-rpmnew.in @ 4585

Revision 4585, 2.0 KB checked in by yasumichi, 13 years ago (diff)

対象ファイル表示時に最終更新日時も表示するようにした。

RevLine 
[4546]1#!/bin/bash
[4536]2
[4571]3# Directory
4prefix=@prefix@
5datarootdir=@datarootdir@
6datadir=@datadir@
7
[4555]8# Enable NLS
9export TEXTDOMAIN=proc-rpmnew
[4571]10export TEXTDOMAINDIR=@localedir@
[4546]11
[4555]12. gettext.sh
13
14# Output menu
[4546]15output_menu()
16{
[4561]17        echo "`eval_gettext "S) Show difference"`"
18        echo "`eval_gettext "E) Edit on diff mode of vim"`"
19        echo "`eval_gettext "I) merge Intaractively by sdiff"`"
20        echo "`eval_gettext "R) Replace current file by saved file"`"
21        echo "`eval_gettext "P) Protect current file and remove saved file"`"
22        echo "`eval_gettext "Q) Quit"`"
23        echo "`eval_gettext "N) Next file"`"
24        echo -n "`eval_gettext "What do you do? > "`"
[4546]25}
26
[4573]27# execute diff
[4571]28exec_diff()
29{
30        COLUMNS=$(tput cols)
31        HALFCOL=$(expr $COLUMNS / 2 - 2)
32
33        printf "%-${HALFCOL}s%-${HALFCOL}s\n" $dir/$cur $dir/$sav
34        echo
35        diff --side-by-side -W ${COLUMNS} $dir/$cur $dir/$sav   # --suppress-common-lines
36}
37
[4573]38# execute sdiff
39exec_sdiff()
40{
[4574]41        MODE=`stat -c "%a" $dir/$cur`
42        OWNER=`stat -c "%U" $dir/$cur`
43        GROUP=`stat -c "%G" $dir/$cur`
44
[4573]45        sdiff -o $dir/$cur.new -w $(tput cols) $dir/$cur $dir/$sav
46        mv $dir/$cur.new $dir/$cur
[4574]47        chmod ${MODE} $dir/$cur
48        chown ${OWNER}:${GROUP} $dir/$cur
[4573]49}
50
[4555]51# main loop
[4540]52for file in `find /etc 2>/dev/null | @EGREP@ "rpm(new|save)$"`
[4536]53do
54        dir=`dirname $file`
55        sav=`basename $file`
56        cur=`basename $file .rpmnew`
57        if [ $cur = $sav ]
58        then
59                cur=`basename $file .rpmsave`
60        fi
61        if [ -e $cur ]
62        then
63                continue
64        fi
[4561]65
[4536]66        ok=0
67        while [ $ok -eq 0 ]
68        do
[4585]69                ctime=`stat -c "%y" $dir/$cur`
70                stime=`stat -c "%y" $dir/$sav`
71                echo "`eval_gettext "current configuration: \\\$dir/\\\$cur             (\\\$ctime)"`"
72                echo "`eval_gettext "saved configuration  : \\\$file    (\\\$stime)"`"
[4547]73                output_menu
74
[4536]75                read command
76                echo
77                case "$command" in
[4571]78                        s|S)    exec_diff ;;
[4536]79
[4561]80                        e|E)    vim +r$dir/$cur -d $dir/$cur.new $dir/$sav
[4541]81                                mv $dir/$cur.new $dir/$cur ;;
[4536]82
[4573]83                        i|I)    exec_sdiff ;;
[4541]84
[4561]85                        r|R)    mv $dir/$sav $dir/$cur
[4536]86                                ok=1;;
87
[4561]88                        p|P)    rm $dir/$sav
[4536]89                                ok=1;;
90
[4561]91                        q|Q)    exit ;;
[4536]92
[4561]93                        n|N)    ok=1;;
94
[4555]95                        *)      echo "`eval_gettext "You inputed wrong character."`"
[4536]96                                echo;;
97                esac
98        done
99done
Note: See TracBrowser for help on using the repository browser.