version 1.1.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 |