From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 3 May 2011 11:25:13 +0000 Subject: add hg and python --- sys/src/cmd/python/Tools/scripts/which.py | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 sys/src/cmd/python/Tools/scripts/which.py (limited to 'sys/src/cmd/python/Tools/scripts/which.py') diff --git a/sys/src/cmd/python/Tools/scripts/which.py b/sys/src/cmd/python/Tools/scripts/which.py new file mode 100755 index 000000000..49b69acf8 --- /dev/null +++ b/sys/src/cmd/python/Tools/scripts/which.py @@ -0,0 +1,60 @@ +#! /usr/bin/env python + +# Variant of "which". +# On stderr, near and total misses are reported. +# '-l' argument adds ls -l of each file found. + +import sys +if sys.path[0] in (".", ""): del sys.path[0] + +import sys, os +from stat import * + +def msg(str): + sys.stderr.write(str + '\n') + +def main(): + pathlist = os.environ['PATH'].split(os.pathsep) + + 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 = () + for dir in pathlist: + filename = os.path.join(dir, prog) + try: + st = os.stat(filename) + except os.error: + continue + if not S_ISREG(st[ST_MODE]): + msg(filename + ': not a disk file') + else: + mode = S_IMODE(st[ST_MODE]) + if mode & 0111: + if not ident: + print filename + ident = st[:3] + else: + if st[:3] == ident: + s = 'same as: ' + else: + s = 'also: ' + msg(s + filename) + else: + msg(filename + ': not executable') + if longlist: + sts = os.system('ls ' + longlist + ' ' + filename) + if sts: msg('"ls -l" exit status: ' + repr(sts)) + if not ident: + msg(prog + ': not found') + sts = 1 + + sys.exit(sts) + +if __name__ == '__main__': + main() -- cgit v1.2.3