make.hfiles 509 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/sh
  2. : Update Files from database
  3. PATH=/bin:/usr/bin
  4. case $# in
  5. 1) ;;
  6. *) echo use: $0 file >&2
  7. exit 1
  8. esac
  9. (
  10. IFCOMMAND="if [ -r \$FN ] ;\
  11. then if cmp -s \$FN \$TMP;\
  12. then rm \$TMP;\
  13. else mv \$TMP \$FN;\
  14. echo update \$FN;\
  15. fi;\
  16. else mv \$TMP \$FN;\
  17. echo create \$FN;\
  18. fi"
  19. echo 'TMP=.uf$$'
  20. echo 'FN=$TMP'
  21. echo 'cat >$TMP <<\!EOF!'
  22. sed -n '/^!File:/,${
  23. /^$/d
  24. /^!File:[ ]*\(.*\)$/s@@!EOF!\
  25. '"$IFCOMMAND"'\
  26. FN=\1\
  27. cat >$TMP <<\\!EOF!@
  28. p
  29. }' $1
  30. echo '!EOF!'
  31. echo $IFCOMMAND
  32. ) | eval "$(cat)"