diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 307c33318bc9..fdf3e6057106 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9524,6 +9524,12 @@ githubId = 1843676; name = "Jonathan Reeve"; }; + jonboh = { + email = "jon.bosque.hernando@gmail.com"; + github = "jonboh"; + githubId = 31407988; + name = "Jon Bosque"; + }; jonnybolton = { email = "jonnybolton@gmail.com"; github = "jonnynightingale"; diff --git a/pkgs/by-name/op/opcua-commander/package.nix b/pkgs/by-name/op/opcua-commander/package.nix new file mode 100644 index 000000000000..aecae5070ed8 --- /dev/null +++ b/pkgs/by-name/op/opcua-commander/package.nix @@ -0,0 +1,44 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +, typescript +, esbuild +, makeWrapper +, nodejs +}: +buildNpmPackage rec { + pname = "opcua-commander"; + version = "0.37.0"; + + src = fetchFromGitHub { + owner = "node-opcua"; + repo = "opcua-commander"; + rev = version; + hash = "sha256-wQXSSNinY85Ti+D/zklYP2N8IP3OsN9xQNJuuQr4kVU="; + }; + + npmDepsHash = "sha256-Ux1X/3sam9WHrTfqoWv1r9p3pJOs6BaeFsxHizAvjXA="; + nativeBuildInputs = [ esbuild typescript makeWrapper ]; + + postPatch = '' + substituteInPlace package.json \ + --replace-warn "npx -y esbuild" "esbuild" + ''; + + # We need to add `nodejs` to PATH for `opcua-commander` to properly work + # when connected to an OPC-UA server. + # Test it with: + # ./opcua-commander -e opc.tcp://opcuademo.sterfive.com:26543 + postFixup = '' + wrapProgram $out/bin/opcua-commander \ + --prefix PATH : "${lib.makeBinPath [nodejs]}" + ''; + + meta = with lib; { + description = "A opcua client with blessed (ncurses)"; + homepage = "https://github.com/node-opcua/opcua-commander"; + license = licenses.mit; + maintainers = with maintainers; [ jonboh ]; + mainProgram = "opcua-commander"; + }; +}