From 858f44199ba16881d5b99b45a4701e6131db5a08 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 2 Mar 1992 16:17:31 +0000 Subject: Added '-l[flags]' option. --- Tools/scripts/which.py | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'Tools') diff --git a/Tools/scripts/which.py b/Tools/scripts/which.py index 24071f4747..94c7556195 100755 --- a/Tools/scripts/which.py +++ b/Tools/scripts/which.py @@ -2,6 +2,7 @@ # Variant of "which". # On stderr, near and total misses are reported. +# '-l' argument adds ls -l of each file found. import sys, posix, string, path from stat import * @@ -12,6 +13,11 @@ def msg(str): pathlist = string.splitfields(posix.environ['PATH'], ':') sts = 0 +longlist = '' + +if sys.argv[1:] and sys.argv[1][:2] == '-l': + longlist = sys.argv[1] + del sys.argv[1] for prog in sys.argv[1:]: ident = () @@ -19,24 +25,27 @@ for prog in sys.argv[1:]: file = path.join(dir, prog) try: st = posix.stat(file) - if S_ISREG(st[ST_MODE]): - mode = S_IMODE(st[ST_MODE]) - if mode % 2 or mode/8 % 2 or mode/64 % 2: - if ident: - if st[:3] == ident: - s = ': same as ' - else: - s = ': also ' - msg(prog + s + file) - else: - print file - ident = st[:3] + except posix.error: + continue + if not S_ISREG(st[ST_MODE]): + msg(file + ': not a disk file') + else: + mode = S_IMODE(st[ST_MODE]) + if mode & 0111: + if not ident: + print file + ident = st[:3] else: - msg(file + ': not executable') + if st[:3] == ident: + s = 'same as: ' + else: + s = 'also: ' + msg(s + file) else: - msg(file + ': not a disk file') - except posix.error: - pass + msg(file + ': not executable') + if longlist: + sts = posix.system('ls ' + longlist + ' ' + file) + if sts: msg('"ls -l" exit status: ' + `sts`) if not ident: msg(prog + ': not found') sts = 1 -- cgit v1.2.1