mim 545 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/sh
  2. MIMFILE="Mimfile"
  3. if [ $# -ge 2 ] && [ "$1" = "-f" ]
  4. then
  5. MIMFILE="$2"
  6. shift 2
  7. fi
  8. exec <"$MIMFILE" || exit 1
  9. {
  10. INCASE=false
  11. while read -r REPLY
  12. do
  13. case $REPLY in
  14. *:)
  15. if ! $INCASE
  16. then
  17. printf '[ $# -eq 0 ] && set -- "%s"
  18. TARGET="$1"
  19. shift
  20. case "$TARGET" in
  21. ' "${REPLY%:}"
  22. else
  23. printf ';;\n'
  24. fi
  25. printf '%s)\n' "${REPLY%:}"
  26. INCASE=true
  27. ;;
  28. "") ;;
  29. *) printf '%s\n' "${REPLY##[ ]}";;
  30. esac
  31. done
  32. $INCASE && printf ';;\n'
  33. printf '*)
  34. echo "Unknown command $TARGET"
  35. exit 1
  36. ;;
  37. esac
  38. '
  39. } | sh -s "$@"