summaryrefslogtreecommitdiffstats
path: root/plugins-scripts/subst.in
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2014-02-28 13:28:33 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2014-02-28 13:28:33 +0100
commitc08d6a429ba0e0cd3642ba2c2fe85687472ee22f (patch)
tree396a37ae462543f0e28f36501c30796b3eb91249 /plugins-scripts/subst.in
parente260efb25690b13002a0bf432507f66bdad90f02 (diff)
downloadmonitoring-plugins-c08d6a429ba0e0cd3642ba2c2fe85687472ee22f.tar.gz
Replace "plugins-scripts/subst.in" foo
Remove the buggy and complex awk(1) magic in "plugins-scripts/subst.in" in favor of simple sed(1) substitutions. The plugins in the "plugins-scripts" directory now always use the PATH specified via "./configure --trusted-path", or the default PATH hard-coded in "configure.ac". Fixes #1242.
Diffstat (limited to 'plugins-scripts/subst.in')
-rw-r--r--plugins-scripts/subst.in53
1 files changed, 0 insertions, 53 deletions
diff --git a/plugins-scripts/subst.in b/plugins-scripts/subst.in
deleted file mode 100644
index c730b770..00000000
--- a/plugins-scripts/subst.in
+++ /dev/null
@@ -1,53 +0,0 @@
1#!/usr/bin/awk
2
3function which(c,path) {
4 cmd = "test -x " c;
5
6 if (system(cmd)==0) {
7 return c;
8 }
9
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 }
17
18
19 return c;
20}
21
22BEGIN {
23 split(ENVIRON["PATH"] ":/sbin:/usr/sbin",path,/:/);
24
25}
26
27# Plugin revision
28/@NP_VERSION@/ {sub(/@NP_VERSION@/,ENVIRON["NP_VERSION"]);}
29
30# scripting language (first line)
31
32/^#! ?\/.*\/python/ {sub(/^#! ?\/.*\/python/,"#! @PYTHON@");}
33/^#! ?\/.*\/perl/ {sub(/^#! ?\/.*\/perl/,"#! @PERL@");}
34/^#! ?\/.*\/[a-z]{0,2}awk/ {sub(/^#! ?\/.*\/[a-z]{0,2}awk/,"#! @AWK@");}
35/^#! ?\/.*\/sh/ {sub(/^#! ?\/.*\/sh/,"#! @SHELL@");}
36
37# If a script contains a reference to a fully qualified command,
38# subst will replace the fully qualified command with whatever is
39# returned from the which subroutine. run before changes to INC to add libexecdir
40# FIXME: Prepend executables with a substitution keyword instead.
41#
42/^[^#]/ && /(\/.*)?\/(bin|sbin|lib|libexec)\// {
43 match($0,/(\/.*)?\/(bin|sbin|lib|libexec)\/[-_a-zA-Z0-9]+/);
44 c=substr($0,RSTART,RLENGTH);
45 sub(c,which(c,path));
46}
47
48# Trusted path mechanism
49/@trusted_path@/ {sub(/@trusted_path@/,"@with_trusted_path@");}
50
51{
52 print;
53}