about summary refs log tree commit diff
path: root/pkgs/by-name/sc
diff options
context:
space:
mode:
authorJon Seager <jon@sgrs.uk>2024-02-19 09:45:01 +0000
committerJon Seager <jon@sgrs.uk>2024-02-22 21:20:08 +0000
commit41f9a37ee4b3421f06c9d3b794cb07a05dd4fc96 (patch)
treed0956d99f87514ccddfaac7cf5b8adbf6f8546dd /pkgs/by-name/sc
parentc9dda2db28825cb690dc647b74c6cd7dde795d89 (diff)
scrutiny: init at 0.7.2
Diffstat (limited to 'pkgs/by-name/sc')
-rw-r--r--pkgs/by-name/sc/scrutiny/package.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/pkgs/by-name/sc/scrutiny/package.nix b/pkgs/by-name/sc/scrutiny/package.nix
new file mode 100644
index 0000000000000..5ca6a86e9dc1f
--- /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;
+  };
+}