source: trunk/third/sed/doc/mdate-sh @ 17271

Revision 17271, 2.6 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17270, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2# Get modification time of a file or directory and pretty-print it.
3# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
4# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software Foundation,
18# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20# Prevent date giving response in another language.
21LANG=C
22export LANG
23LC_ALL=C
24export LC_ALL
25LC_TIME=C
26export LC_TIME
27
28# Get the extended ls output of the file or directory.
29# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
30if ls -L /dev/null 1>/dev/null 2>&1; then
31  set - x`ls -L -l -d $1`
32else
33  set - x`ls -l -d $1`
34fi
35# The month is at least the fourth argument
36# (3 shifts here, the next inside the loop).
37shift
38shift
39shift
40
41# Find the month.  Next argument is day, followed by the year or time.
42month=
43until test $month
44do
45  shift
46  case $1 in
47    Jan) month=January; nummonth=1;;
48    Feb) month=February; nummonth=2;;
49    Mar) month=March; nummonth=3;;
50    Apr) month=April; nummonth=4;;
51    May) month=May; nummonth=5;;
52    Jun) month=June; nummonth=6;;
53    Jul) month=July; nummonth=7;;
54    Aug) month=August; nummonth=8;;
55    Sep) month=September; nummonth=9;;
56    Oct) month=October; nummonth=10;;
57    Nov) month=November; nummonth=11;;
58    Dec) month=December; nummonth=12;;
59  esac
60done
61
62day=$2
63
64# Here we have to deal with the problem that the ls output gives either
65# the time of day or the year.
66case $3 in
67  *:*) set `date`; eval year=\$$#
68       case $2 in
69         Jan) nummonthtod=1;;
70         Feb) nummonthtod=2;;
71         Mar) nummonthtod=3;;
72         Apr) nummonthtod=4;;
73         May) nummonthtod=5;;
74         Jun) nummonthtod=6;;
75         Jul) nummonthtod=7;;
76         Aug) nummonthtod=8;;
77         Sep) nummonthtod=9;;
78         Oct) nummonthtod=10;;
79         Nov) nummonthtod=11;;
80         Dec) nummonthtod=12;;
81       esac
82       # For the first six month of the year the time notation can also
83       # be used for files modified in the last year.
84       if (expr $nummonth \> $nummonthtod) > /dev/null;
85       then
86         year=`expr $year - 1`
87       fi;;
88  *) year=$3;;
89esac
90
91# The result.
92echo $day $month $year
Note: See TracBrowser for help on using the repository browser.