[comp.sys.amiga] GETDATE, A simple utility to display the datestamp for a dir/file

dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/03/87)

	This simply gets a lock on a file, Examine's it, and displays the
	timestamp.  It works on files, directories, or volumes.  Mainly a
	hacker's tool.

	GETDATE DF1:

					-Matt

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	getdate.c
#	getdate.uue
# This archive created: Mon Nov  2 18:49:39 1987
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'getdate.c'" '(1198 characters)'
if test -f 'getdate.c'
then
	echo shar: "will not over-write existing file 'getdate.c'"
else
cat << \!Funky!Stuff! > 'getdate.c'

/*
 *  Examine a path and return the date
 */

typedef struct FileInfoBlock FIB;

extern void *malloc();
extern char *datetos();

main(ac,av)
char *av[];
{
    char buf[64];
    long lock;
    FIB *fib = malloc(sizeof(FIB));

    strcpy(buf, "error");
    if (lock = Lock(av[1], ACCESS_READ)) {
	if (Examine(lock, fib))
	    strcpy(buf, datetos(&fib->fib_Date));
	UnLock(lock);
    }
    puts(buf);
}

char *
datetos(d)
register struct DateStamp *d;
{
    static char stamp[64];
    static char dim[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    static char *Month[12] = { "Jan","Feb","Mar","Apr","May","Jun","Jul",
			       "Aug","Sep","Oct","Nov","Dec" };
    register long day, month, year, scr;

    day = d->ds_Days;	    /* iteration (could be done w/equations) */
    year = 1978;

    while (day >= (scr = ((year&3)|!(year%100)) ? 365 : 366)) {
	++year;
	day -= scr;
    }
    dim[1] = ((year&3)|!(year%100)) ? 28 : 29;
    for (month = 0; day >= dim[month]; (day -= dim[month]), ++month);
    sprintf(stamp, "%2ld %s %2ld:%02ld:%02ld.%02ld %4ld",
	day + 1, Month[month], d->ds_Minute/60, d->ds_Minute%60,
	d->ds_Tick/50, (d->ds_Tick%50)<<2,
	year);
    return (stamp);
}


!Funky!Stuff!
fi  # end of overwriting check
echo shar: "extracting 'getdate.uue'" '(7978 characters)'
if test -f 'getdate.uue'
then
	echo shar: "will not over-write existing file 'getdate.uue'"
else
cat << \!Funky!Stuff! > 'getdate.uue'
begin 644 getdate
M```#\P`````````#``````````(```3:````QP````$```/I```$VD[Z`=).
M5?^X2'@!!$ZZ#KY83RM`_[A(>@!F2&W_P$ZZ!7)03TAX__X@;0`,+R@`!$ZZ
M$BY03RM`_[QG-"\M_[@O+?^\3KH1[%!/2H!G&"!M_[A(:`"$82Q83R\`2&W_
MP$ZZ!3!03R\M_[Q.NA(<6$](;?_`3KH%+%A/3EU.=65R<F]R`$Y5``!(YP\@
M)&T`""@2+#P```>Z<F0@!DZZ"E1F!'0!8`)T`$C")@;&O`````.$@V<((#P`
M``%M8`8@/````6XN`+B`;092AIB'8,AR9"`&3KH*'&8$=`%@`G0`2,(F!L:\
M`````X2#9P1P'&`"<!T90(`#>@!@$$'L@`(0,%@`2(!(P)B`4H5![(`"$#!8
M`$B`2,"X@&S@+P8@*@`(<C).N@G,Y8`O`"`J``AR,DZZ"98O`"`J``1R/$ZZ
M";(O`"`J``1R/$ZZ"7XO`"0%Y8)![(`.+S`H`"8$4H,O`TAZ`$Q(;(*.3KH%
M*$_O`"1![(*.(`A,WP3P3EU.=4IA;@!&96(`36%R`$%P<@!-87D`2G5N`$IU
M;`!!=6<`4V5P`$]C=`!.;W8`1&5C`"4R;&0@)7,@)3)L9#HE,#)L9#HE,#)L
M9"XE,#)L9"`E-&QD`&%P0^R"CD7L@HZUR68.,CP`(VL(=``BPE')__PI3X+6
M+'@`!"E.@MI(YX"`""X`!`$I9Q!+^@`(3J[_XF`&0J?S7TYS0_H`($ZN_F@I
M0(+>9@PN/``#@`=.KO^48`1.N@`:4$].=61O<RYL:6)R87)Y`$GY``!__DYU
M3E4``"\*2'D``0``,"R"BL'\``8O`$ZZ$&A03RE`@N)F%$*G2'D``0``3KH0
M+%!/+FR"UDYU(&R"XD)H``0@;(+B,7P``0`0(FR"XC-\``$`"B!L@M8@+(+6
MD*@`!%"`*4""YB!L@N8@O$U!3EA"ITZZ$!Q83R1`2JH`K&<P+RT`#"\M``@O
M"DZZ`+1/[P`,*7P````!@NH@;(+B`&B````$(&R"X@!H@```"F!$2&H`7$ZZ
M$#183TAJ`%Q.N@_T6$\I0(+N(&R"[DJH`"1G$"!L@NXB:``D+Q%.N@[P6$\O
M+(+N+PI.N@*J4$\I;(+N@O).N@\"(&R"XB"`3KH/-"!L@N(A0``&9Q9(>`/M
M2'H`+$ZZ#Q!03R!L@N(A0``,+RR"\B\L@O9.NOR,4$]"ITZZ#0Y83R1?3EU.
M=2H`3E4``$CG##`D;0`0(&T`""`H`*SE@"@`($0@*``0Y8`F0!`32(!(P-"M
M``Q4@"E`@OI"IR\L@OI.N@\(4$\I0(+^9@A,WPPP3EU.=1`32(!(P"\`($M2
MB"\(+RR"_DZZ`5I/[P`,2'H!4!`32(!(P-"L@OXO`$ZZ`8Y03R\M``PO"B\L
M@OY.N@%:3^\`#$*L@O8F;(+^)$L0$TB`2,`J`+"\````(&<@NKP````)9QBZ
MO`````QG$+J\````#6<(NKP````*9@12BV#,#!,`(&T``(P,$P`B9C)2BR!+
M4HL0$$B`2,`J`&<@($I2BA"%NKP````B9A`,$P`B9@12BV`&0BK__V`"8-)@
M1"!+4HL0$$B`2,`J`&<PNKP````@9RBZO`````EG(+J\````#&<8NKP````-
M9Q"ZO`````IG""!*4HH0A6#"($I2BD(02H5F`E.+4JR"]F``_SQ"$D*G("R"
M]E*`Y8`O`$ZZ#=103RE`@O)F"$*L@O9@`/[&>@`F;(+^8!H@!>6`(&R"\B&+
M"``O"TZZ!DY83U*`U\!2A;JL@O9MX"`%Y8`@;(+R0K`(`&``_HX@`$SO`P``
M!"`((B\`#&`"$-E7R?_\9P9206`"0AA1R?_\3G4P/'__8`0P+P`.(&\`!$H8
M9OQ32")O``A30!#95\C__&<"0A`@+P`$3G4@;P`$(`@B;P`($-EF_$YU3E4`
M`"\*)&T`"$H29R0@2E**$!!(@$C`+P!.N@7&6$^PO/____]F"'#_)%].74YU
M8-A(>``*3KH%JEA/8.Q.50``2.<.,"1M``A"ITAZ`(Y.N@T84$\I0(,:9@A,
MWPQP3EU.=2!M``PB:``D+RD`!$ZZ#4A83R@`9U)(>@!M($0O*``V3KH-&E!/
M)D!*@&<T2'@#[2\+3KH,.%!/+`!G)"`&Y8`J`"!%)6@`"`"D)48`G$AX`^U(
M>@`X3KH,%%!/)4``H"\$3KH,YEA/+RR#&DZZ#$I83T*L@QI@@&EC;VXN;&EB
M<F%R>0!724Y$3U<`*@!.50``+P0I;0`(@LY(;0`0+RT`#$AZ`!I.N@"\3^\`
M#"@`(&R"SD(0(`0H'TY=3G5.50``(&R"SE*L@LX0+0`+$(!(@$C`P+P```#_
M3EU.=4Y5``!(YP@@)&T`$`RM````!``49@@@;0`(*!!@%$JM``QO""!M``@H
M$&`&(&T`""@00JT`%$JM``QL$D2M``Q*A&P*1(0K?`````$`%"(M``P@!$ZZ
M`])![(`^4XH4L`@`(BT`#"`$3KH#RB@`9MY*K0`49P93BA2\`"T@"DS?!!!.
M74YU3E7_%$CG"#`D;0`()FT`#$*M__@K;0`0__P@2U*+$!!(@$C`*`!G``,P
MN+P````E9@`#"D(M_R(K?`````'_]"M\````(/_P*WP``"<0_^P@2U*+$!!(
M@$C`*`"PO````"UF$$*M__0@2U*+$!!(@$C`*`"XO````#!F%"M\````,/_P
M($M2BQ`02(!(P"@`N+P````J9AH@;?_\6*W__"M0_^@@2U*+$!!(@$C`*`!@
M-$*M_^A@(G(*("W_Z$ZZ"<#0A)"\````,"M`_^@@2U*+$!!(@$C`*`!![(!1
M"#```D@`9M*XO````"YF8B!+4HL0$$B`2,`H`+"\````*F8:(&W__%BM__PK
M4/_L($M2BQ`02(!(P"@`8#1"K?_L8")R"B`M_^Q.N@E6T(20O````#`K0/_L
M($M2BQ`02(!(P"@`0>R`40@P``)(`&;2*WP````$_^2XO````&QF%B!+4HL0
M$$B`2,`H`"M\````!/_D8!2XO````&AF#"!+4HL0$$B`2,`H`"`$8'XK?```
M``C_X&`<*WP````*_^!@$BM\````$/_@8`@K?/____;_X"\M_^1(;?\B+RW_
MX"\M__Q.NOVT3^\`$"M`_]P@+?_DT:W__&!:(&W__%BM__PK4/_<+RW_W$ZZ
M`AQ83RM`_^1@2B!M__Q8K?_\*!!![?\A*TC_W!"$8"B0O````&-GXE.`9Y20
MO`````MG`/]N68!GM%6`9P#_;E>`9P#_<F#,0>W_(I'M_]PK2/_D("W_Y+"M
M_^QO!BMM_^S_Y$JM__1G<"!M_]P,$``M9PHB;?_<#!$`*V8T#*T````P__!F
M*E.M_^@@;?_<4JW_W!`02(!(P"\`3I)83["\_____V8*</],WPP03EU.=6`8
M+RW_\$Z26$^PO/____]F!'#_8.)2K?_X("W_Z%.M_^BPK?_D;MI"K?_@8"0@
M;?_<4JW_W!`02(!(P"\`3I)83["\_____V8$</]@JE*M_^`@;?_<2A!G"B`M
M_^"PK?_L;<H@+?_@T:W_^$JM__1F*F`:2'@`($Z26$^PO/____]F!G#_8`#_
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
M"@H"`@("`@("`@("`@("`@("`@("`D!`0$`@``````````````````$`````
M`0`````````````````````!`0````$``````````````````````0(````!
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````!0``````^P````,``````````P````0````
M%````!@````<````(````"0````H````+````#`````T````.`````````/R
,```#ZP````$```/R
`
end
!Funky!Stuff!
fi  # end of overwriting check
exit 0
#	End of shell archive