| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/bin/awk
- function which(c,path) {
- cmd = "test -x " c;
- if (system(cmd)==0) {
- return c;
- }
- sub(/\/.*\//,"",c);
- for (dir in path) {
- cmd = "test -x " path[dir] "/" c;
- if (system(cmd)==0) {
- return path[dir] "/" c;
- }
- }
- return c;
- }
- BEGIN {
- split(ENVIRON["PATH"] ":/sbin:/usr/sbin",path,/:/);
- }
- # scripting language (first line)
- /^#! ?\/.*\/python/ {sub(/^#! ?\/.*\/python/,"#! @PYTHON@");}
- /^#! ?\/.*\/perl/ {sub(/^#! ?\/.*\/perl/,"#! @PERL@");}
- /^#! ?\/.*\/[a-z]{0,2}awk/ {sub(/^#! ?\/.*\/[a-z]{0,2}awk/,"#! @AWK@");}
- /^#! ?\/.*\/sh/ {sub(/^#! ?\/.*\/sh/,"#! @SHELL@");}
- # Trusted path mechanism (deprecated)
- /^[ \t]*\$ENV[ \t]*\{[ \t'"]*PATH[ \t"']*\}[ \t]*=/ {
- sub(/\=[ \t]*['"][^"']+["']/,"='@trusted_path@' # autoconf-derived");
- }
- /^[\t ]*(export[\t ]*)?PATH[\t ]*=['"]+.+["']$/ {
- sub(/\=.*$/,"='@trusted_path@' # autoconf-derived");
- }
- # Specific programs
- #
- /^[^#]/ && /(\/.*)?\/(bin|sbin|lib|libexec)\// {
- match($0,/(\/.*)?\/(bin|sbin|lib|libexec)\/[-_a-zA-Z0-9]+/);
- start=RSTART+RLENGTH;
- c=substr($0,RSTART,RLENGTH);
- sub(c,which(c,path));
- }
- {
- print;
- }
|