Changeset 1198


Ignore:
Timestamp:
06/26/2009 16:28:21 (14 months ago)
Author:
douglas
Message:

More useful.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Profiles/CCS/bin/epee-diff

    r1197 r1198  
    66# $Id$ 
    77 
     8shopt -s xpg_echo 
     9 
     10function do_ssh() 
     11{ 
     12        case $host in 
     13        (zweihander|epee-*) 
     14                args=($node) 
     15                ;; 
     16        (*) 
     17                case $node in 
     18                (epee-head) 
     19                        args=epee 
     20                        ;; 
     21                (epee-node-*) 
     22                        args=(-p $((2200 + `printf '%d' "'${node#epee-node-}'"` - 95)) epee) 
     23                        ;; 
     24                esac 
     25                ;; 
     26        esac 
     27 
     28        ssh ${args[*]} "$packages" 
     29} 
     30 
     31[[ -t 1 ]] && declare reset='\e[0m' bright='\e[1m' dim='\e[2m' underscore='\e[4m' blink='\e[5m' reverse='\e[7m' hidden='\e[8m' black='\e[30m' red='\e[31m' green='\e[32m' yellow='\e[33m' blue='\e[34m' magenta='\e[35m' cyan='\e[36m' white='\e[37m' _black='\e[40m' _red='\e[41m' _green='\e[42m' _yellow='\e[43m' _blue='\e[44m' _magenta='\e[45m' _cyan='\e[46m' _white='\e[47m' 
     32 
     33packages='apt-show-versions' 
     34ignore=(ipmasq netstat-nat) 
     35nodes=(epee-{head,node-{a,b,c}}) 
    836host=`hostname -s` 
     37temp=`mktemp /tmp/epee-diff-XXXXXX` 
    938 
    10 if [[ ! $host =~ ^epee- ]]; then 
    11         echo "`basename $0`: not on epee.ccs.ucsb.edu" 
    12         exit 1 
     39if [[ ${nodes[*]/$host/} == ${nodes[*]} ]]; then 
     40        node=epee-head 
     41 
     42        do_ssh > $temp 
     43else 
     44        node=$host 
     45 
     46        $packages > $temp 
    1347fi 
    1448 
    15 apt-show-versions > ~/$host 
     49for node in ${nodes[*]/$node/}; do 
     50        echo "$bright$blue$host$reset <> $bright$yellow$node$reset:" 
     51        diff -u <(do_ssh) $temp | pcregrep '^[+-](?![+-]{2})' | (IFS='|'; grep -Ev "^[+-](${ignore[*]})/") | sed -e "s/^+/ `echo $bright$blue+$reset`/;s/^-/ `echo $bright$yellow-$reset`/" 
     52done 
    1653 
    17 function do_diff() 
    18 { 
    19         diff -u $1 $host | pcregrep '^[+-](?![+-]{2})' 
    20 } 
    21  
    22 case $host in 
    23 (epee-node-a) 
    24         do_diff epee-head | grep -Ev '^-(ipmasq|netstat-nat)/' 
    25         ;; 
    26 (epee-node-b) 
    27         do_diff epee-node-a 
    28         ;; 
    29 (epee-node-c) 
    30         do_diff epee-node-b 
    31         ;; 
    32 esac 
     54rm $temp 
Note: See TracChangeset for help on using the changeset viewer.