Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/sudo /bin/zsh
- # Usage:
- # - put system configure files (with path) at $PWD
- # for example, $PWD/etc/mpd.conf ...
- # - run this script
- autoload colors
- colors
- SELF_BASENAME=`basename $0`
- for i in `find`; do
- FILE_BASENAME=`basename $i`
- if [[ -f $i ]] && [[ $FILE_BASENAME != $SELF_BASENAME ]] && [[ "$FILE_BASENAME[1]" != "." ]]; then
- printf "$fg[white]$i: "
- if [[ "/$i" -nt $i ]]; then
- # system has newer file
- print "$fg[red]System has newer version"
- else
- # system has older or different file
- if [[ -f /$i ]]; then
- if diff -q "/$i" $i &>/dev/null; then
- # same file
- print "$fg[green]Ok"
- else
- # need update
- printf "$fg[blue]Updating... "
- DEST_MOD=`stat -c %a /$i`
- DEST_GROUP=`stat -c %g /$i`
- DEST_USER=`stat -c %u /$i`
- # install
- /bin/install -g $DEST_GROUP -o $DEST_USER -m $DEST_MOD -p -T $i /$i
- print "Done"
- fi
- else
- # need create
- printf "$fg[blue]Creating... "
- SRC_MOD=`stat -c %a $i`
- # check directory and create
- DEST_DIR=`dirname /$i`
- if [[ ! -d $DEST_DIR ]]; then
- printf '(new dir) '
- mkdir -p $DEST_DIR
- fi
- if [[ -d $DEST_DIR ]]; then
- /bin/install -m $SRC_MOD -p -T $i /$i
- print "Done"
- else
- print "$fg[red]Failed"
- fi
- fi
- fi
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement