ifchange: check the number of arguments

This commit is contained in:
Nobuyoshi Nakada 2021-01-04 14:31:18 +09:00
Родитель 8da7f4abc7
Коммит 977252421b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7CD2805BFA3770C6
2 изменённых файлов: 57 добавлений и 2 удалений

Просмотреть файл

@ -3,6 +3,18 @@
# Used in generating revision.h via Makefiles.
help() {
cat <<HELP
usage: $0 [options] target new-file
options:
--timestamp[=file] touch timestamp file. (default: prefixed with ".time".
under the directory of the target)
--keep[=suffix] keep old file with suffix. (default: '.old')
--empty assume unchanged if the new file is empty.
--color[=always|auto|never] colorize output.
HELP
}
set -e
timestamp=
keepsuffix=
@ -10,6 +22,10 @@ empty=
color=auto
until [ $# -eq 0 ]; do
case "$1" in
--)
shift
break;
;;
--timestamp)
timestamp=.
;;
@ -34,6 +50,14 @@ until [ $# -eq 0 ]; do
--debug)
set -x
;;
--help)
help
exit
;;
--*)
echo "$0: unknown option: $1" 1>&2
exit 1
;;
*)
break
;;
@ -41,6 +65,11 @@ until [ $# -eq 0 ]; do
shift
done
if [ "$#" != 2 ]; then
help
exit 1
fi
target="$1"
temp="$2"
if [ "$temp" = - ]; then

Просмотреть файл

@ -1,13 +1,16 @@
@echo off
:: usage: ifchange target temporary
for %%I in (%0) do set progname=%%~nI
set timestamp=
set keepsuffix=
set empty=
set color=auto
:optloop
for %%I in (%1) do set opt=%%~I
if "%opt%" == "--timestamp" (
if "%opt%" == "--" (
shift
) else if "%opt%" == "--timestamp" (
set timestamp=.
shift
goto :optloop
@ -39,8 +42,18 @@ if "%opt%" == "--timestamp" (
shift
echo on
goto :optloop
) else if "%opt%" == "--help" (
call :help
exit /b
) else if "%opt:~0,2%" == "--" (
echo %progname%: unknown option: %1 1>&2
exit /b 1
)
if "%2" == "" (
call :help 1>&2
exit /b 1
)
if "%opt%" == "" goto :end
set dest=%1
set src=%2
@ -85,4 +98,17 @@ if "%timestamp%" == "" goto :end
for %%I in ("%dest%") do set timestamp=%%~dpI.time.%%~nxI
)
goto :end > "%timestamp%"
:help
for %%I in (
"usage: %progname% [options] target new-file"
"options:"
" --timestamp[=file] touch timestamp file. (default: prefixed with '.time')"
" under the directory of the target)"
" --keep[=suffix] keep old file with suffix. (default: '.old')"
" --empty assume unchanged if the new file is empty."
" --color[=always|auto|never] colorize output."
) do echo.%%~I
goto :eof
:end