1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

ifchange: check the number of arguments

This commit is contained in:
Nobuyoshi Nakada 2021-01-04 14:31:18 +09:00
parent 8da7f4abc7
commit 977252421b
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6
2 changed files with 57 additions and 2 deletions

View file

@ -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

View file

@ -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