mirror of
https://github.com/netdata/netdata.git
synced 2025-03-15 21:44:57 +00:00
73 lines
1.1 KiB
Bash
Executable file
73 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# will stop the script for any error
|
|
set -e
|
|
|
|
me="$0"
|
|
name="$1"
|
|
chart="$2"
|
|
conf="$3"
|
|
|
|
can_diff=1
|
|
|
|
tmp1="`mktemp`"
|
|
tmp2="`mktemp`"
|
|
|
|
myset() {
|
|
set | grep -v "^_=" | grep -v "^PIPESTATUS=" | grep -v "^BASH_LINENO="
|
|
}
|
|
|
|
# save 2 'set'
|
|
myset >"$tmp1"
|
|
myset >"$tmp2"
|
|
|
|
# make sure they don't differ
|
|
diff "$tmp1" "$tmp2" >/dev/null 2>&1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
# they differ, we cannot do the check
|
|
echo >&2 "$me: cannot check with diff."
|
|
can_diff=0
|
|
fi
|
|
|
|
# do it again, now including the script
|
|
myset >"$tmp1"
|
|
|
|
# include the plugin and its config
|
|
if [ -f "$conf" ]
|
|
then
|
|
. "$conf"
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo >&2 "$me: cannot load config file $conf"
|
|
rm "$tmp1" "$tmp2"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
. "$chart"
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo >&2 "$me: cannot load chart file $chart"
|
|
rm "$tmp1" "$tmp2"
|
|
exit 1
|
|
fi
|
|
|
|
# remove all variables starting with the plugin name
|
|
myset | grep -v "^$name" >"$tmp2"
|
|
|
|
if [ $can_diff -eq 1 ]
|
|
then
|
|
# check if they are different
|
|
# make sure they don't differ
|
|
diff "$tmp1" "$tmp2" >&2
|
|
if [ $? -ne 0 ]
|
|
then
|
|
# they differ
|
|
rm "$tmp1" "$tmp2"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
rm "$tmp1" "$tmp2"
|
|
exit 0
|