diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2e92e5a4baf3..d7605ec55ebe 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -28302,6 +28302,12 @@ githubId = 1486805; name = "Toon Nolten"; }; + tophcodes = { + email = "toki@toph.so"; + github = "tophcodes"; + githubId = 3678770; + name = "Christopher Mühl"; + }; tornax = { email = "tornax@pm.me"; github = "TornaxO7"; diff --git a/pkgs/by-name/ne/nerdlog/package.nix b/pkgs/by-name/ne/nerdlog/package.nix new file mode 100644 index 000000000000..90c3af05adfd --- /dev/null +++ b/pkgs/by-name/ne/nerdlog/package.nix @@ -0,0 +1,60 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + libx11, + nix-update-script, + versionCheckHook, +}: +buildGoModule (finalAttrs: { + pname = "nerdlog"; + version = "1.10.0"; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "dimonomid"; + repo = "nerdlog"; + tag = "v${finalAttrs.version}"; + hash = "sha256-XlzWNeyd+Ar4ArFcN1wkQ0aod6ckAiIb12odK7cf4+s="; + }; + + vendorHash = "sha256-hvv0dsE1yz85VLaBOE7RWbux8L8kVTihcA1HyyHRYAM="; + + buildInputs = [ libx11 ]; + + subPackages = [ "cmd/nerdlog" ]; + + ldflags = [ + "-X github.com/dimonomid/nerdlog/version.version=${finalAttrs.version}" + "-X github.com/dimonomid/nerdlog/version.builtBy=nix" + ]; + + # e2e tests require SSH connections to test hosts + checkFlags = [ + "-skip" + "^TestE2E" + ]; + + doInstallCheck = true; + nativeBuildInputs = [ versionCheckHook ]; + + # `nerdlog --version` will fail if $HOME is not defined + versionCheckKeepEnvironment = [ "HOME" ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + changelog = "https://github.com/dimonomid/nerdlog/releases/tag/${finalAttrs.src.tag}"; + description = "Fast, remote-first, multi-host TUI log viewer with timeline histogram"; + longDescription = '' + Nerdlog is a fast, remote-first, multi-host TUI log viewer with timeline histogram + and no central server. Loosely inspired by Graylog/Kibana, but without the bloat. + Pretty much no setup needed, either. + ''; + homepage = "https://github.com/dimonomid/nerdlog"; + license = lib.licenses.bsd2; + mainProgram = "nerdlog"; + maintainers = with lib.maintainers; [ tophcodes ]; + }; +})