選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

103 行
2.0 KiB

  1. #!/bin/bash
  2. has_color=false
  3. if which tput >&/dev/null; then
  4. num_colors=$(tput colors)
  5. [[ -n "${num_colors}" ]] && [[ num_colors -ge 8 ]] && has_color=true
  6. fi
  7. color_reset='\e[0m'
  8. color_info='\e[1;96m'
  9. color_err='\e[1;91m'
  10. color_bold='\e[0;1m'
  11. if ! $has_color ; then
  12. color_reset=
  13. color_info=
  14. color_err=
  15. color_bold=
  16. fi
  17. info() {
  18. echo -e "${color_info}info: ${color_bold}$*${color_reset}"
  19. }
  20. err() {
  21. >&2 echo -e "${color_err}error: ${color_bold}$*${color_reset}"
  22. }
  23. prefix=/usr
  24. [[ "$(uname -s)" == "Darwin" ]] && prefix=/usr/local
  25. usage() {
  26. cat <<EOF
  27. usage: $0 [-p <prefix>] [-v]
  28. -p <prefix> instalation prefix
  29. (default: ${default_prefix})
  30. -v verbose
  31. -h | --help this message
  32. EOF
  33. }
  34. while [[ $# -gt 0 ]]; do
  35. case $1 in
  36. -h|--help) usage ; exit 0 ;;
  37. -v) set -x ;;
  38. -p)
  39. [[ -z "$2" ]] && \
  40. err "'-p' requires a prefix to be provided" && exit 1
  41. prefix=$(realpath -m ${2})
  42. shift 1
  43. ;;
  44. *)
  45. err "unrecognized option '${1}'"
  46. exit 1
  47. ;;
  48. esac
  49. shift 1
  50. done
  51. if [[ ! -d "${prefix}" ]] && ! mkdir -p ${prefix} ; then
  52. err "error creating '${prefix}'"
  53. exit 1
  54. fi
  55. bindir=${prefix}/bin
  56. sharedir=${prefix}/share
  57. mandir=${sharedir}/man1
  58. mkdir -p ${bindir}
  59. for target in bin/*; do
  60. script=$(basename ${target})
  61. if ! cp -f ${target} ${bindir}; then
  62. err "error: failed copying '${target}' to '${bindir}'" && exit 1
  63. fi
  64. chmod 755 ${bindir}/${script}
  65. done
  66. mkdir -p ${sharedir} || exit 1
  67. for target in share/*; do
  68. shared=$(basename ${target})
  69. dest=${sharedir}/${shared}
  70. if ! cp -f ${target} ${dest}; then
  71. err "error: failed copying '${target}' to '${dest}'" && exit 1
  72. fi
  73. sed -i "s,%PREFIX%,${concat_dest}," ${dest}
  74. if $(grep -q '%PREFIX%' ${dest}); then
  75. err "error: failed performingg substitutions on '${dest}'" && exit 1
  76. fi
  77. done
  78. mkdir -p ${mandir} || exit 1
  79. if ! cp -f mw.1 ${mandir}/mw.1; then
  80. err "error: failed copying 'mw.1' to '${mandir}'" && exit 1
  81. fi
  82. info "install success"