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"
235238pass=$( tr -dc " a-zA-Z0-9" < " /dev/urandom" | fold -w " 32" | head -n " 1" )
239+ silentFlag=' 0'
236240sourceBin=$(
237241 dirname -- " ${0} "
238242 printf " _"
@@ -248,21 +252,33 @@ sourceW3mplus=$(
248252 printf " _"
249253)
250254sourceW3mplus=" ${sourceW3mplus% ?_} /.w3mplus"
251- w3mDir=" ${HOME} /.w3m"
252- w3mplusDir=" ${HOME} /.w3mplus"
253255REST=' '
254256parse () {
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
462483Options:
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}"
528550for 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
543569printf ' %s' " ${pass} " > " ${tmpDir} /.w3mplus/pass"
544570
571+ case " ${silentFlag} " in
572+ ' 1' ) printf " '.w3m' のファイルを設定中...\\ n" >&2 ;;
573+ esac
574+
545575find -- " ${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
559593done
594+
595+ case " ${silentFlag} " in
596+ ' 1' ) printf ' インストール完了\n' >&2 ;;
597+ esac
0 commit comments