about summary refs log tree commit diff
path: root/pkgs/by-name/de/dep-tree/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/de/dep-tree/package.nix')
-rw-r--r--pkgs/by-name/de/dep-tree/package.nix81
1 files changed, 81 insertions, 0 deletions
diff --git a/pkgs/by-name/de/dep-tree/package.nix b/pkgs/by-name/de/dep-tree/package.nix
new file mode 100644
index 0000000000000..224eddd3d156d
--- /dev/null
+++ b/pkgs/by-name/de/dep-tree/package.nix
@@ -0,0 +1,81 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  linkFarm,
+}:
+let
+  testDeps = {
+    react-stl-viewer = fetchFromGitHub {
+      owner = "gabotechs";
+      repo = "react-stl-viewer";
+      rev = "2.2.4";
+      sha256 = "sha256-0u9q0UgOn43PE1Y6BUhl1l6RnVjpPraFqZWB+HhQ0s8=";
+    };
+    react-gcode-viewer = fetchFromGitHub {
+      owner = "gabotechs";
+      repo = "react-gcode-viewer";
+      rev = "2.2.4";
+      sha256 = "sha256-FHBICLdy0k4j3pPKStg+nkIktMpKS1ADa4m1vYHJ+AQ=";
+    };
+    graphql-js = fetchFromGitHub {
+      owner = "graphql";
+      repo = "graphql-js";
+      rev = "v17.0.0-alpha.2";
+      sha256 = "sha256-y55SNiMivL7bRsjLEIpsKKyaluI4sXhREpiB6A5jfDU=";
+    };
+    warp = fetchFromGitHub {
+      owner = "seanmonstar";
+      repo = "warp";
+      rev = "v0.3.3";
+      sha256 = "sha256-76ib8KMjTS2iUOwkQYCsoeL3GwBaA/MRQU2eGjJEpOo=";
+    };
+  };
+  pname = "dep-tree";
+  version = "0.23.0";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "gabotechs";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-Vd6g9UE3XEFGjCK8tFfOphYcNx+zeBS9rBVz0MDLe1I=";
+  };
+
+  vendorHash = "sha256-KoVOjZq+RrJ2gzLnANHPPtbEY1ztC0rIXWD9AXAxqMg=";
+
+  preCheck = ''
+    substituteInPlace internal/tui/tui_test.go \
+      --replace-fail /tmp/dep-tree-tests ${linkFarm "dep-tree_testDeps-farm" testDeps}
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    # We do not set trimpath for tests, in case they reference test assets
+    export GOFLAGS=''${GOFLAGS//-trimpath/}
+
+    # checkFlags is not able to skip tests via pattern.
+    # possibly requires fixing in buildGoModule.
+    # For now, this is the new checkPhase
+    go test ./... -skip='TestRoot.*|TestFilesFromArgs.*'
+    # these tests were not feasibly fixable.
+    # a LARGE portion of the original source would need to be edited via patch for this to work.
+
+    runHook postCheck
+  '';
+
+  meta = {
+    description = "Tool for visualizing interconnectedness of codebases in multiple languages";
+    longDescription = ''
+      dep-tree is a tool for interactively visualizing the complexity of a code base.
+      It helps analyze the interconnectedness of the codebase and create goals to improve maintainability.
+    '';
+    homepage = "https://github.com/gabotechs/dep-tree";
+    changelog = "https://github.com/gabotechs/dep-tree/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ birdee ];
+    mainProgram = "dep-tree";
+  };
+}