|
version 1.1, 2012/02/21 17:26:11
|
version 1.1.1.3, 2013/07/21 23:54:38
|
|
Line 1
|
Line 1
|
| #!/bin/sh |
#!/bin/sh |
| # Get modification time of a file or directory and pretty-print it. |
# Get modification time of a file or directory and pretty-print it. |
| |
|
| scriptversion=2009-04-28.21; # UTC | scriptversion=2010-08-21.06; # UTC |
| |
|
| # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009 Free | # Copyright (C) 1995-2012 Free Software Foundation, Inc. |
| # Software Foundation, Inc. | |
| # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 |
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 |
| # |
# |
| # This program is free software; you can redistribute it and/or modify |
# This program is free software; you can redistribute it and/or modify |
|
Line 29 scriptversion=2009-04-28.21; # UTC
|
Line 28 scriptversion=2009-04-28.21; # UTC
|
| # bugs to <bug-automake@gnu.org> or send patches to |
# bugs to <bug-automake@gnu.org> or send patches to |
| # <automake-patches@gnu.org>. |
# <automake-patches@gnu.org>. |
| |
|
| |
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then |
| |
emulate sh |
| |
NULLCMD=: |
| |
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which |
| |
# is contrary to our usage. Disable this feature. |
| |
alias -g '${1+"$@"}'='"$@"' |
| |
setopt NO_GLOB_SUBST |
| |
fi |
| |
|
| case $1 in |
case $1 in |
| '') |
'') |
| echo "$0: No file. Try \`$0 --help' for more information." 1>&2 | echo "$0: No file. Try '$0 --help' for more information." 1>&2 |
| exit 1; |
exit 1; |
| ;; |
;; |
| -h | --h*) |
-h | --h*) |
| cat <<\EOF |
cat <<\EOF |
| Usage: mdate-sh [--help] [--version] FILE |
Usage: mdate-sh [--help] [--version] FILE |
| |
|
| Pretty-print the modification time of FILE. | Pretty-print the modification day of FILE, in the format: |
| | 1 January 1970 |
| |
|
| Report bugs to <bug-automake@gnu.org>. |
Report bugs to <bug-automake@gnu.org>. |
| EOF |
EOF |
|
Line 50 EOF
|
Line 59 EOF
|
| ;; |
;; |
| esac |
esac |
| |
|
| |
error () |
| |
{ |
| |
echo "$0: $1" >&2 |
| |
exit 1 |
| |
} |
| |
|
| |
|
| # Prevent date giving response in another language. |
# Prevent date giving response in another language. |
| LANG=C |
LANG=C |
| export LANG |
export LANG |
|
Line 59 LC_TIME=C
|
Line 75 LC_TIME=C
|
| export LC_TIME |
export LC_TIME |
| |
|
| # GNU ls changes its time format in response to the TIME_STYLE |
# GNU ls changes its time format in response to the TIME_STYLE |
| # variable. Since we cannot assume `unset' works, revert this | # variable. Since we cannot assume 'unset' works, revert this |
| # variable to its documented default. |
# variable to its documented default. |
| if test "${TIME_STYLE+set}" = set; then |
if test "${TIME_STYLE+set}" = set; then |
| TIME_STYLE=posix-long-iso |
TIME_STYLE=posix-long-iso |
|
Line 79 if ls -n /dev/null 1>/dev/null 2>&1; then
|
Line 95 if ls -n /dev/null 1>/dev/null 2>&1; then
|
| ls_command="$ls_command -n" |
ls_command="$ls_command -n" |
| fi |
fi |
| |
|
| # A `ls -l' line looks as follows on OS/2. | # A 'ls -l' line looks as follows on OS/2. |
| # drwxrwx--- 0 Aug 11 2001 foo |
# drwxrwx--- 0 Aug 11 2001 foo |
| # This differs from Unix, which adds ownership information. |
# This differs from Unix, which adds ownership information. |
| # drwxrwx--- 2 root root 4096 Aug 11 2001 foo |
# drwxrwx--- 2 root root 4096 Aug 11 2001 foo |
| # |
# |
| # To find the date, we split the line on spaces and iterate on words |
# To find the date, we split the line on spaces and iterate on words |
| # until we find a month. This cannot work with files whose owner is a |
# until we find a month. This cannot work with files whose owner is a |
| # user named `Jan', or `Feb', etc. However, it's unlikely that `/' | # user named "Jan", or "Feb", etc. However, it's unlikely that '/' |
| # will be owned by a user whose name is a month. So we first look at |
# will be owned by a user whose name is a month. So we first look at |
| # the extended ls output of the root directory to decide how many |
# the extended ls output of the root directory to decide how many |
| # words should be skipped to get the date. |
# words should be skipped to get the date. |
|
Line 99 month=
|
Line 115 month=
|
| command= |
command= |
| until test $month |
until test $month |
| do |
do |
| |
test $# -gt 0 || error "failed parsing '$ls_command /' output" |
| shift |
shift |
| # Add another shift to the command. |
# Add another shift to the command. |
| command="$command shift;" |
command="$command shift;" |
|
Line 118 do
|
Line 135 do
|
| esac |
esac |
| done |
done |
| |
|
| |
test -n "$month" || error "failed parsing '$ls_command /' output" |
| |
|
| # Get the extended ls output of the file or directory. |
# Get the extended ls output of the file or directory. |
| set dummy x`eval "$ls_command \"\$save_arg1\""` | set dummy x`eval "$ls_command \"\\\$save_arg1\""` |
| |
|
| # Remove all preceding arguments |
# Remove all preceding arguments |
| eval $command |
eval $command |