Skip to content

Commit 89b43f7

Browse files
committed
インストール時のメッセージを表示
1 parent ae5df5c commit 89b43f7

File tree

1 file changed

+76
-38
lines changed

1 file changed

+76
-38
lines changed

release/install.sh

Lines changed: 76 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
##
99
## author - qq542vev <https://purl.org/meta/me/>
1010
## version - 0.1.0
11-
## date - 2022-07-13
11+
## date - 2022-07-27
1212
## since - 2022-07-13
1313
## copyright - Copyright (C) 2022-2022 qq542vev. Some rights reserved.
1414
## license - CC-BY <https://creativecommons.org/licenses/by/4.0/>
@@ -194,13 +194,14 @@ parser_definition() {
194194
-- 'Usage:' " ${2##*/} [OPTION]..." \
195195
'' 'Options:'
196196

197-
param binDir --bin-dir init:'binDir="${HOME}/bin"' var:PATH -- 'PATH に bin をインストールする'
197+
param destBin --dest-bin init:'destBin="${HOME}/bin"' var:PATH -- 'PATH に bin をインストールする'
198+
param destW3m --dest-w3m init:'destW3m="${HOME}/.w3m"' var:PATH -- 'PATH に .w3m をインストールする'
199+
param destW3mplus --dest-w3mplus init:'destW3mplus="${HOME}/.w3mplus"' var:PATH -- 'PATH に .w3mplus をインストールする'
198200
param pass -p --pass init:'pass=$(tr -dc "a-zA-Z0-9" <"/dev/urandom" | fold -w "32" | head -n "1")' validate:'regex_match "${OPTARG}" "^[0-9A-Za-z]*$"' var:ALPHANUM -- 'pass のための文字列を指定する'
201+
flag silentFlag -s --{no-}silent init:@no -- '処理中の表示を行わない'
199202
param sourceBin --source-bin init:'sourceBin=$(dirname -- "${0}"; printf "_"); sourceBin="${sourceBin%?_}/bin"' var:DIRECTORY -- 'インストールする bin を指定する'
200203
param sourceW3m --source-w3m init:'sourceW3m=$(dirname -- "${0}"; printf "_"); sourceW3m="${sourceW3m%?_}/.w3m"' var:DIRECTORY -- 'インストールする .w3m を指定する'
201204
param sourceW3mplus --source-w3mplus init:'sourceW3mplus=$(dirname -- "${0}"; printf "_"); sourceW3mplus="${sourceW3mplus%?_}/.w3mplus"' var:DIRECTORY -- 'インストールする .w3mplus を指定する'
202-
param w3mDir --w3m-dir init:'w3mDir="${HOME}/.w3m"' var:PATH -- 'PATH に .w3m をインストールする'
203-
param w3mplusDir --w3mplus-dir init:'w3mplusDir="${HOME}/.w3mplus"' var:PATH -- 'PATH に .w3mplus をインストールする'
204205
disp :usage -h --help -- 'このヘルプを表示して終了する'
205206
disp VERSION -v --version -- 'バージョン情報を表示して終了する'
206207

@@ -231,8 +232,11 @@ parser_definition() {
231232
# @gengetoptions parser -i parser_definition parse "${1}"
232233
# Generated by getoptions (BEGIN)
233234
# URL: https://github.com/ko1nksm/getoptions (v3.3.0)
234-
binDir="${HOME}/bin"
235+
destBin="${HOME}/bin"
236+
destW3m="${HOME}/.w3m"
237+
destW3mplus="${HOME}/.w3mplus"
235238
pass=$(tr -dc "a-zA-Z0-9" <"/dev/urandom" | fold -w "32" | head -n "1")
239+
silentFlag='0'
236240
sourceBin=$(
237241
dirname -- "${0}"
238242
printf "_"
@@ -248,21 +252,33 @@ sourceW3mplus=$(
248252
printf "_"
249253
)
250254
sourceW3mplus="${sourceW3mplus%?_}/.w3mplus"
251-
w3mDir="${HOME}/.w3m"
252-
w3mplusDir="${HOME}/.w3mplus"
253255
REST=''
254256
parse() {
255257
OPTIND=$(($# + 1))
256258
while OPTARG= && [ $# -gt 0 ]; do
257259
set -- "${1%%\=*}" "${1#*\=}" "$@"
258260
while [ ${#1} -gt 2 ]; do
259261
case $1 in *[!a-zA-Z0-9_-]*) break ;; esac
260-
case '--bin-dir' in
262+
case '--dest-bin' in
261263
"$1")
262264
OPTARG=
263265
break
264266
;;
265-
$1*) OPTARG="$OPTARG --bin-dir" ;;
267+
$1*) OPTARG="$OPTARG --dest-bin" ;;
268+
esac
269+
case '--dest-w3m' in
270+
"$1")
271+
OPTARG=
272+
break
273+
;;
274+
$1*) OPTARG="$OPTARG --dest-w3m" ;;
275+
esac
276+
case '--dest-w3mplus' in
277+
"$1")
278+
OPTARG=
279+
break
280+
;;
281+
$1*) OPTARG="$OPTARG --dest-w3mplus" ;;
266282
esac
267283
case '--pass' in
268284
"$1")
@@ -271,40 +287,40 @@ parse() {
271287
;;
272288
$1*) OPTARG="$OPTARG --pass" ;;
273289
esac
274-
case '--source-bin' in
290+
case '--silent' in
275291
"$1")
276292
OPTARG=
277293
break
278294
;;
279-
$1*) OPTARG="$OPTARG --source-bin" ;;
295+
$1*) OPTARG="$OPTARG --silent" ;;
280296
esac
281-
case '--source-w3m' in
297+
case '--no-silent' in
282298
"$1")
283299
OPTARG=
284300
break
285301
;;
286-
$1*) OPTARG="$OPTARG --source-w3m" ;;
302+
$1*) OPTARG="$OPTARG --no-silent" ;;
287303
esac
288-
case '--source-w3mplus' in
304+
case '--source-bin' in
289305
"$1")
290306
OPTARG=
291307
break
292308
;;
293-
$1*) OPTARG="$OPTARG --source-w3mplus" ;;
309+
$1*) OPTARG="$OPTARG --source-bin" ;;
294310
esac
295-
case '--w3m-dir' in
311+
case '--source-w3m' in
296312
"$1")
297313
OPTARG=
298314
break
299315
;;
300-
$1*) OPTARG="$OPTARG --w3m-dir" ;;
316+
$1*) OPTARG="$OPTARG --source-w3m" ;;
301317
esac
302-
case '--w3mplus-dir' in
318+
case '--source-w3mplus' in
303319
"$1")
304320
OPTARG=
305321
break
306322
;;
307-
$1*) OPTARG="$OPTARG --w3mplus-dir" ;;
323+
$1*) OPTARG="$OPTARG --source-w3mplus" ;;
308324
esac
309325
case '--help' in
310326
"$1")
@@ -356,7 +372,7 @@ parse() {
356372
shift
357373
eval 'set -- "${OPTARG%"${OPTARG#??}"}" "${OPTARG#??}"' ${1+'"$@"'}
358374
;;
359-
-[hv]?*)
375+
-[shv]?*)
360376
OPTARG=$1
361377
shift
362378
eval 'set -- "${OPTARG%"${OPTARG#??}"}" -"${OPTARG#??}"' ${1+'"$@"'}
@@ -365,10 +381,22 @@ parse() {
365381
+*) unset OPTARG ;;
366382
esac
367383
case $1 in
368-
'--bin-dir')
384+
'--dest-bin')
369385
[ $# -le 1 ] && set "required" "$1" && break
370386
OPTARG=$2
371-
binDir="$OPTARG"
387+
destBin="$OPTARG"
388+
shift
389+
;;
390+
'--dest-w3m')
391+
[ $# -le 1 ] && set "required" "$1" && break
392+
OPTARG=$2
393+
destW3m="$OPTARG"
394+
shift
395+
;;
396+
'--dest-w3mplus')
397+
[ $# -le 1 ] && set "required" "$1" && break
398+
OPTARG=$2
399+
destW3mplus="$OPTARG"
372400
shift
373401
;;
374402
'-p' | '--pass')
@@ -381,6 +409,11 @@ parse() {
381409
pass="$OPTARG"
382410
shift
383411
;;
412+
'-s' | '--silent' | '--no-silent')
413+
[ "${OPTARG:-}" ] && OPTARG=${OPTARG#*\=} && set "noarg" "$1" && break
414+
eval '[ ${OPTARG+x} ] &&:' && OPTARG='1' || OPTARG='0'
415+
silentFlag="$OPTARG"
416+
;;
384417
'--source-bin')
385418
[ $# -le 1 ] && set "required" "$1" && break
386419
OPTARG=$2
@@ -399,18 +432,6 @@ parse() {
399432
sourceW3mplus="$OPTARG"
400433
shift
401434
;;
402-
'--w3m-dir')
403-
[ $# -le 1 ] && set "required" "$1" && break
404-
OPTARG=$2
405-
w3mDir="$OPTARG"
406-
shift
407-
;;
408-
'--w3mplus-dir')
409-
[ $# -le 1 ] && set "required" "$1" && break
410-
OPTARG=$2
411-
w3mplusDir="$OPTARG"
412-
shift
413-
;;
414435
'-h' | '--help')
415436
usage
416437
exit 0
@@ -460,16 +481,17 @@ Usage:
460481
install.sh [OPTION]...
461482
462483
Options:
463-
--bin-dir PATH PATH に bin をインストールする
484+
--dest-bin PATH PATH に bin をインストールする
485+
--dest-w3m PATH PATH に .w3m をインストールする
486+
--dest-w3mplus PATH PATH に .w3mplus をインストールする
464487
-p, --pass ALPHANUM pass のための文字列を指定する
488+
-s, --{no-}silent 処理中の表示を行わない
465489
--source-bin DIRECTORY
466490
インストールする bin を指定する
467491
--source-w3m DIRECTORY
468492
インストールする .w3m を指定する
469493
--source-w3mplus DIRECTORY
470494
インストールする .w3mplus を指定する
471-
--w3m-dir PATH PATH に .w3m をインストールする
472-
--w3mplus-dir PATH PATH に .w3mplus をインストールする
473495
-h, --help このヘルプを表示して終了する
474496
-v, --version バージョン情報を表示して終了する
475497
@@ -528,6 +550,10 @@ mkdir -p -- "${tmpDir}"
528550
for value in 'sourceBin:bin' 'sourceW3m:.w3m' 'sourceW3mplus:.w3mplus'; do
529551
eval "sourceDir=\"\${${value%%:*}}\""
530552

553+
case "${silentFlag}" in
554+
'1') printf "'%s' を確認中...\\n" "${sourceDir}" >&2 ;;
555+
esac
556+
531557
if [ '!' -d "${sourceDir}" ]; then
532558
  cat <<-EOF >&2
533559
${0##*/}: '${sourceDir}' はディレクトリではありません。
@@ -542,18 +568,30 @@ done
542568

543569
printf '%s' "${pass}" >"${tmpDir}/.w3mplus/pass"
544570

571+
case "${silentFlag}" in
572+
'1') printf "'.w3m' のファイルを設定中...\\n" >&2 ;;
573+
esac
574+
545575
find -- "${tmpDir}/.w3m" -type f -exec sh -c "${shellScript}" 'sh' "${pass}" '{}' '+'
546576

547-
for value in 'bin:binDir' '.w3m:w3mDir' '.w3mplus:w3mplusDir'; do
577+
for value in 'bin:destBin' '.w3m:destW3m' '.w3mplus:destW3mplus'; do
548578
eval "distDir=\"\${${value##*:}}\""
549579

550580
case "${distDir}" in
551581
?*)
552582
(
583+
case "${silentFlag}" in
584+
'1') printf "'%s' を '%s' にインストール中...\\n" "${value%%:*}" "${distDir}" >&2 ;;
585+
esac
586+
553587
mkdir -p -- "${distDir}"
554588
cd -- "${tmpDir}/${value%%:*}"
555589
find -- . -path './*' -prune -exec cp -fR -- '{}' "${distDir}" ';'
556590
)
557591
;;
558592
esac
559593
done
594+
595+
case "${silentFlag}" in
596+
'1') printf 'インストール完了\n' >&2 ;;
597+
esac

0 commit comments

Comments
 (0)