| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/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,/:/);
- }
- # Plugin revision
- /@NP_VERSION@/ {sub(/@NP_VERSION@/,ENVIRON["NP_VERSION"]);}
- # 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@");}
- # If a script contains a reference to a fully qualified command,
- # subst will replace the fully qualified command with whatever is
- # returned from the which subroutine. run before changes to INC to add libexecdir
- # FIXME: Prepend executables with a substitution keyword instead.
- #
- /^[^#]/ && /(\/.*)?\/(bin|sbin|lib|libexec)\// {
- match($0,/(\/.*)?\/(bin|sbin|lib|libexec)\/[-_a-zA-Z0-9]+/);
- c=substr($0,RSTART,RLENGTH);
- sub(c,which(c,path));
- }
- # Trusted path mechanism
- /@trusted_path@/ {sub(/@trusted_path@/,"@with_trusted_path@");}
-
- {
- print;
- }
|