Code

Fix Debian bug #574612: Return WARNING on rebuild
[nagiosplug.git] / plugins-scripts / subst.in
1 #!/usr/bin/awk
3 function which(c,path) {
4         cmd = "test -x " c;
6         if (system(cmd)==0) {
7                 return c;
8         } 
10         sub(/\/.*\//,"",c);
11   for (dir in path) {
12                         cmd = "test -x " path[dir] "/" c;
13                         if (system(cmd)==0) {
14                                         return path[dir] "/" c;
15                         } 
16         }
19         return c;
20 }
22 # used to replace "use lib utils.pm" with "use lib @libexecdir"
23 #
24 function led() {
25         led1 = "@libexecdir@";
26         led2 = "@exec_prefix@";
27         led3 = "@prefix@";
28         if ( match(led1, /^\$\{exec_prefix\}/ ) != 0 ) {
29                 return "\"" led3 "/libexec\" " ;
30         
31         }
32         return "\"" led1 "\"" ;
33 }
35 BEGIN {
36         split(ENVIRON["PATH"] ":/sbin:/usr/sbin",path,/:/);
38 }
40 # Plugin revision
41 /@NP_VERSION@/ {sub(/@NP_VERSION@/,ENVIRON["NP_VERSION"]);}
43 # scripting language (first line)
45 /^#! ?\/.*\/python/ {sub(/^#! ?\/.*\/python/,"#! @PYTHON@");}
46 /^#! ?\/.*\/perl/ {sub(/^#! ?\/.*\/perl/,"#! @PERL@");}
47 /^#! ?\/.*\/[a-z]{0,2}awk/ {sub(/^#! ?\/.*\/[a-z]{0,2}awk/,"#! @AWK@");}
48 /^#! ?\/.*\/sh/ {sub(/^#! ?\/.*\/sh/,"#! @SHELL@");}
50 # If a script contains a reference to a fully qualified command,
51 # subst will replace the fully qualified command with whatever is
52 # returned from the which subroutine. run before changes to INC to add libexecdir
53 # FIXME: Prepend executables with a substitution keyword instead.
54 #
55 /^[^#]/ && /(\/.*)?\/(bin|sbin|lib|libexec)\// {
56         match($0,/(\/.*)?\/(bin|sbin|lib|libexec)\/[-_a-zA-Z0-9]+/);
57         c=substr($0,RSTART,RLENGTH);
58         sub(c,which(c,path));
59 }
61 # add to libexecdir to INC for perl utils.pm
62 /^use/ { if (/lib/) { if (/utils.pm|"."/ ) {sub(/utils.pm|"."/,led() )} } }
65 # Trusted path mechanism (deprecated)
67 /^[ \t]*\$ENV[ \t]*\{[ \t'"]*PATH[ \t"']*\}[ \t]*=/ {
68         sub(/\=[ \t]*['"][^"']+["']/,"='@with_trusted_path@' # autoconf-derived");
69 }
71 /^[\t ]*(export[\t ]*)?PATH[\t ]*=['"]+.+["']$/ {
72         sub(/\=.*$/,"='@with_trusted_path@' # autoconf-derived");
73 }
75 {
76         print;
77 }