|
|
|
@@ -0,0 +1,102 @@ |
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
has_color=false |
|
|
|
|
|
|
|
if which tput >&/dev/null; then |
|
|
|
num_colors=$(tput colors) |
|
|
|
[[ -n "${num_colors}" ]] && [[ num_colors -ge 8 ]] && has_color=true |
|
|
|
fi |
|
|
|
|
|
|
|
color_reset='\e[0m' |
|
|
|
color_info='\e[1;96m' |
|
|
|
color_err='\e[1;91m' |
|
|
|
color_bold='\e[0;1m' |
|
|
|
|
|
|
|
if ! $has_color ; then |
|
|
|
color_reset= |
|
|
|
color_info= |
|
|
|
color_err= |
|
|
|
color_bold= |
|
|
|
fi |
|
|
|
|
|
|
|
info() { |
|
|
|
echo -e "${color_info}info: ${color_bold}$*${color_reset}" |
|
|
|
} |
|
|
|
|
|
|
|
err() { |
|
|
|
>&2 echo -e "${color_err}error: ${color_bold}$*${color_reset}" |
|
|
|
} |
|
|
|
|
|
|
|
prefix=/usr |
|
|
|
[[ "$(uname -s)" == "Darwin" ]] && prefix=/usr/local |
|
|
|
|
|
|
|
usage() { |
|
|
|
cat <<EOF |
|
|
|
usage: $0 [-p <prefix>] [-v] |
|
|
|
|
|
|
|
-p <prefix> instalation prefix |
|
|
|
(default: ${default_prefix}) |
|
|
|
-v verbose |
|
|
|
-h | --help this message |
|
|
|
|
|
|
|
EOF |
|
|
|
} |
|
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do |
|
|
|
case $1 in |
|
|
|
-h|--help) usage ; exit 0 ;; |
|
|
|
-v) set -x ;; |
|
|
|
-p) |
|
|
|
[[ -z "$2" ]] && \ |
|
|
|
err "'-p' requires a prefix to be provided" && exit 1 |
|
|
|
prefix=$(realpath -m ${2}) |
|
|
|
shift 1 |
|
|
|
;; |
|
|
|
*) |
|
|
|
err "unrecognized option '${1}'" |
|
|
|
exit 1 |
|
|
|
;; |
|
|
|
esac |
|
|
|
shift 1 |
|
|
|
done |
|
|
|
|
|
|
|
if [[ ! -d "${prefix}" ]] && ! mkdir -p ${prefix} ; then |
|
|
|
err "error creating '${prefix}'" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
bindir=${prefix}/bin |
|
|
|
sharedir=${prefix}/share |
|
|
|
mandir=${sharedir}/man1 |
|
|
|
|
|
|
|
mkdir -p ${bindir} |
|
|
|
for target in bin/*; do |
|
|
|
script=$(basename ${target}) |
|
|
|
if ! cp -f ${target} ${bindir}; then |
|
|
|
err "error: failed copying '${target}' to '${bindir}'" && exit 1 |
|
|
|
fi |
|
|
|
chmod 755 ${bindir}/${script} |
|
|
|
done |
|
|
|
|
|
|
|
mkdir -p ${sharedir} || exit 1 |
|
|
|
for target in share/*; do |
|
|
|
shared=$(basename ${target}) |
|
|
|
dest=${sharedir}/${shared} |
|
|
|
|
|
|
|
if ! cp -f ${target} ${dest}; then |
|
|
|
err "error: failed copying '${target}' to '${dest}'" && exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
sed -i "s,%PREFIX%,${concat_dest}," ${dest} |
|
|
|
if $(grep -q '%PREFIX%' ${dest}); then |
|
|
|
err "error: failed performingg substitutions on '${dest}'" && exit 1 |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
mkdir -p ${mandir} || exit 1 |
|
|
|
if ! cp -f mw.1 ${mandir}/mw.1; then |
|
|
|
err "error: failed copying 'mw.1' to '${mandir}'" && exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
info "install success" |