diff --git a/pkgs/by-name/sc/scrutiny/package.nix b/pkgs/by-name/sc/scrutiny/package.nix new file mode 100644 index 000000000000..5ca6a86e9dc1 --- /dev/null +++ b/pkgs/by-name/sc/scrutiny/package.nix @@ -0,0 +1,68 @@ +{ buildNpmPackage +, buildGoModule +, fetchFromGitHub +, nixosTests +, lib +}: +let + pname = "scrutiny"; + version = "0.7.2"; + + src = fetchFromGitHub { + owner = "AnalogJ"; + repo = "scrutiny"; + rev = "refs/tags/v${version}"; + hash = "sha256-UYKi+WTsasUaE6irzMAHr66k7wXyec8FXc8AWjEk0qs="; + }; + + frontend = buildNpmPackage { + inherit version; + pname = "${pname}-webapp"; + src = "${src}/webapp/frontend"; + + npmDepsHash = "sha256-M8P41LPg7oJ/C9abDuNM5Mn+OO0zK56CKi2BwLxv8oQ="; + + buildPhase = '' + runHook preBuild + mkdir dist + npm run build:prod --offline -- --output-path=dist + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir $out + cp -r dist/* $out + runHook postInstall + ''; + }; +in +buildGoModule rec { + inherit pname src version; + + subPackages = "webapp/backend/cmd/scrutiny"; + + vendorHash = "sha256-SiQw6pq0Fyy8Ia39S/Vgp9Mlfog2drtVn43g+GXiQuI="; + + CGO_ENABLED = 0; + + ldflags = [ "-extldflags=-static" ]; + + tags = [ "static" ]; + + postInstall = '' + mkdir -p $out/share/scrutiny + cp -r ${frontend}/* $out/share/scrutiny + ''; + + passthru.tests.scrutiny = nixosTests.scrutiny; + + meta = { + description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds."; + homepage = "https://github.com/AnalogJ/scrutiny"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jnsgruk ]; + mainProgram = "scrutiny"; + platforms = lib.platforms.linux; + }; +}