diff options
Diffstat (limited to 'pkgs/servers/monitoring/plugins/wmiplus/default.nix')
-rw-r--r-- | pkgs/servers/monitoring/plugins/wmiplus/default.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/pkgs/servers/monitoring/plugins/wmiplus/default.nix new file mode 100644 index 00000000000..9a4e5d706e9 --- /dev/null +++ b/pkgs/servers/monitoring/plugins/wmiplus/default.nix @@ -0,0 +1,77 @@ +{ stdenv, fetchFromGitHub, makeWrapper, perlPackages, txt2man +, monitoring-plugins +, wmic-bin ? null }: + +stdenv.mkDerivation rec { + pname = "check-wmiplus"; + version = "1.64"; + + # We fetch from github.com instead of the proper upstream as nix-build errors + # out with 406 when trying to fetch the sources + src = fetchFromGitHub { + owner = "speartail"; + repo = "checkwmiplus"; + rev = "v${version}"; + sha256 = "1m36rd2wnc5dk4mm9q4ch67w19144dl112p9s6lhc1sh6h25ln6r"; + }; + + patches = [ + ./wmiplus_fix_manpage.patch + ]; + + propagatedBuildInputs = with perlPackages; [ + BHooksEndOfScope ClassDataInheritable ClassInspector ClassSingleton + ConfigIniFiles DateTime DateTimeLocale DateTimeTimeZone DevelStackTrace + EvalClosure ExceptionClass FileShareDir ModuleImplementation ModuleRuntime + MROCompat namespaceautoclean namespaceclean NumberFormat PackageStash + ParamsValidate ParamsValidationCompiler RoleTiny Specio + SubExporterProgressive SubIdentify TryTiny + ]; + + nativeBuildInputs = [ makeWrapper txt2man ]; + + dontConfigure = true; + dontBuild = true; + doCheck = false; # no checks + + postPatch = '' + substituteInPlace check_wmi_plus.pl \ + --replace /usr/bin/wmic ${wmic-bin}/bin/wmic \ + --replace /etc/check_wmi_plus $out/etc/check_wmi_plus \ + --replace /opt/nagios/bin/plugins $out/etc/check_wmi_plus \ + --replace /usr/lib/nagios/plugins ${monitoring-plugins}/libexec \ + --replace '$base_dir/check_wmi_plus_help.pl' "$out/bin/check_wmi_plus_help.pl" + + for f in *.pl ; do + substituteInPlace $f --replace /usr/bin/perl ${perlPackages.perl}/bin/perl + done + ''; + + installPhase = '' + runHook preInstall + + install -Dm755 -t $out/bin *.pl + install -Dm644 -t $out/share/doc/${pname} *.txt + cp -r etc $out/ + + runHook postInstall + ''; + + # 1. we need to wait until the main binary has been fixed up with proper perl paths before we can run it to generate the man page + # 2. txt2man returns exit code 3 even if it works, so we add the || true bit + postFixup = '' + wrapProgram $out/bin/check_wmi_plus.pl \ + --set PERL5LIB "${perlPackages.makePerlPath propagatedBuildInputs}" + + mkdir -p $out/share/man/man1 + $out/bin/check_wmi_plus.pl --help | txt2man -d 1970-01-01 -s 1 -t check_wmi_plus -r "Check WMI Plus ${version}" > $out/share/man/man1/check_wmi_plus.1 || true + gzip $out/share/man/man1/check_wmi_plus.1 + ''; + + meta = with stdenv.lib; { + description = "A sensu/nagios plugin using WMI to query Windows hosts"; + homepage = "http://edcint.co.nz/checkwmiplus"; + license = licenses.gpl2; + maintainers = with maintainers; [ peterhoeg ]; + }; +} |