Annotation of OpenXM/misc/which.pl, Revision 1.1
1.1 ! takayama 1: #!/usr/bin/perl
! 2: #
! 3: # Copyright (c) 1995 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
! 4: # All rights reserved.
! 5: #
! 6: # Redistribution and use in source and binary forms, with or without
! 7: # modification, are permitted provided that the following conditions
! 8: # are met:
! 9: # 1. Redistributions of source code must retain the above copyright
! 10: # notice, this list of conditions and the following disclaimer.
! 11: # 2. Redistributions in binary form must reproduce the above copyright
! 12: # notice, this list of conditions and the following disclaimer in the
! 13: # documentation and/or other materials provided with the distribution.
! 14: #
! 15: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
! 16: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 17: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 18: # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
! 19: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 20: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 21: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 22: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 23: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 24: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 25: # SUCH DAMAGE.
! 26: #
! 27: # $FreeBSD: src/usr.bin/which/which.pl,v 1.13.2.1 1999/08/29 15:34:47 peter Exp $
! 28:
! 29: $all = $silent = $found = 0;
! 30: @path = split(/:/, $ENV{'PATH'});
! 31: if ($ENV{'PATH'} =~ /:$/) {
! 32: $#path = $#path + 1;
! 33: $path[$#path] = "";
! 34: }
! 35:
! 36: if ($ARGV[0] eq "-a") {
! 37: $all = 1; shift @ARGV;
! 38: } elsif ($ARGV[0] eq "-s") {
! 39: $silent = 1; shift @ARGV;
! 40: } elsif ($ARGV[0] =~ /^-(h|help|\?)$/) {
! 41: die "usage: which [-a] [-s] program ...\n";
! 42: }
! 43:
! 44: foreach $prog (@ARGV) {
! 45: if ("$prog" =~ '/' && -x "$prog" && -f "$prog") {
! 46: print "$prog\n" unless $silent;
! 47: $found = 1;
! 48: } else {
! 49: foreach $e (@path) {
! 50: $e = "." if !$e;
! 51: if (-x "$e/$prog" && -f "$e/$prog") {
! 52: print "$e/$prog\n" unless $silent;
! 53: $found = 1;
! 54: last unless $all;
! 55: }
! 56: }
! 57: }
! 58: }
! 59:
! 60: exit (!$found);
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>