home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume32 / gaps / part01 / unput < prev    next >
Text File  |  1992-09-20  |  991b  |  40 lines

  1. #!/bin/sh
  2. # GAPS version 4.0
  3. # get and put system - by Nadav Har'El
  4. # unput: unput the last version from history
  5. trap 'chmod -w $HIST' 1 2 3 15
  6. case $# in
  7. 1)     case $1 in 
  8.     *.H)    HIST=$1;;
  9.     *)    HIST=$1.H
  10.     esac
  11.     if test -f $HIST
  12.     then
  13.         chmod u+w $HIST
  14.     fi ;;
  15. *)     echo 'Usage: unput file' 1>&2; exit 1 ;;
  16. esac 
  17. if test ! -r $HIST -o ! -f $HIST
  18. then
  19.     echo "unput: can't open history file $HIST" 1>&2
  20.     exit 1
  21. fi
  22. if test `grep "^@@\^" $HIST 2>/dev/null | wc -l` -le 1
  23. then
  24.     echo "$HIST has only one version or not an history file." 1>&2
  25.     echo "Unput failed." 1>&2
  26.     exit 1
  27. fi
  28. trap 'rm -f /tmp/unput.[abc]$$;chmod -w $HIST 2>/dev/null; exit 1' 1 2 3 15
  29. get -1 -o /tmp/unput.a$$ $HIST             # get previous version
  30. awk -F\^ <$HIST >/tmp/unput.b$$ '        # find all diffs but last
  31.     /^@@\^/ { count++
  32.          if(count==1)print "removed version", $2 >"/tmp/unput.c'$$'" }
  33.     count >= 2
  34. '
  35. trap '' 1 2 3 15                    # ignore signals
  36. cat /tmp/unput.[ab]$$ >$HIST
  37. cat /tmp/unput.c$$ 1>&2
  38. rm -f /tmp/unput.[abc]$$
  39. chmod -w $HIST
  40.