about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/signaldctl
diff options
context:
space:
mode:
authorcolin <colin@uninsane.org>2023-01-17 09:04:53 +0000
committercolin <colin@uninsane.org>2023-01-17 11:11:54 +0000
commitbd8533f20201b99accaf99d197599fe1176d048e (patch)
treead145f3a00781db319f1782e91717ed98b163bb3 /pkgs/applications/networking/instant-messengers/signaldctl
parent75718252aa8f347d73237cdf84266476ebbe2481 (diff)
signaldctl: init at 0.6.1
signaldctl is a tool used to administer the signald service (already
available in nixpkgs). after enabling the signald service as below:

```nix
{
  services.signald.enable = true;
}
```

then a user can use signaldctl to introspect signald's state.
the communication happens over `/run/signald/signald.sock`, so either
configure signald to expose that with desired permissions, or run
signaldctl as the signald user:
```
$ sudo -u signald -g signald signaldctl account list
┌──────────────┬──────────────────────────────────────┬───────────┐
│ PHONE NUMBER │ UUID                                 │ DEVICE ID │
├──────────────┼──────────────────────────────────────┼───────────┤
│ +1XXXXXXXXXX │ XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX │         1 │
└──────────────┴──────────────────────────────────────┴───────────┘
```
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signaldctl')
-rw-r--r--pkgs/applications/networking/instant-messengers/signaldctl/default.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signaldctl/default.nix b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
new file mode 100644
index 0000000000000..cb241bac8fc2b
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildGoModule
+, fetchFromGitLab
+, gitUpdater
+}:
+
+buildGoModule rec {
+  pname = "signaldctl";
+  version = "0.6.1";
+  src = fetchFromGitLab {
+    owner = "signald";
+    repo = "signald-go";
+    rev = "v${version}";
+    hash = "sha256-lMJyr4BPZ8V2f//CUkr7CVQ6o8nRyeLBHMDEyLcHSgQ=";
+  };
+
+  vendorHash = "sha256-LGIWAVhDJCg6Ox7U4ZK15K8trjsvSZm4/0jNpIDmG7I=";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    # install only the binary and not any intermediate artifacts like
+    # `generators` which is only used during build
+    cp "$GOPATH/bin/signaldctl" $out/bin
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+  };
+
+  meta = with lib; {
+    description = "A golang library for communicating with signald";
+    homepage = "https://signald.org/signaldctl/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ colinsane ];
+    platforms = platforms.unix;
+  };
+}