install-recursive.sh 624 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/sh
  2. if [ $# -lt 2 ]
  3. then
  4. echo "Usage: $0 (<src-file>|<src-dir>)+ <dst-dir>" >&2
  5. exit 1
  6. fi
  7. if [ $# -eq 2 ]
  8. then
  9. src="$1"
  10. shift
  11. if [ -d "$src" ]
  12. then
  13. src="$src"/*
  14. fi
  15. else
  16. src=""
  17. while [ $# -ne 1 ]
  18. do
  19. src="$src $1"
  20. shift
  21. done
  22. fi
  23. dst="$1"
  24. for path in $src
  25. do
  26. name=$(basename "$path")
  27. dir=$(dirname "$path")
  28. if [ -L "$path" ]
  29. then
  30. echo "skipping symbolic link: $path"
  31. elif [ -d "$path" ]
  32. then
  33. if [ "$name" != .svn ]
  34. then
  35. $0 "$path" "$dst"
  36. fi
  37. else
  38. install -m 0755 -d "$dst/$dir"
  39. mode=0644
  40. if [ -x "$path" ]
  41. then
  42. mode=0755
  43. fi
  44. install -m $mode "$path" "$dst/$dir"
  45. fi
  46. done