about summary refs log tree commit diff
path: root/machines/profpatsch/xmpp-client.nix
blob: 53a007b2985cf2836df769a2d6f481fb78d2eb35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
home: passwordentry:
{ lib, writeScriptBin, xmpp-client, pass, fetchFromGitHub }:

let
  myClient = xmpp-client.overrideDerivation (old: {
    src = fetchFromGitHub {
      rev = "32cdd273edd354932ce0c5d28d0c4159068bd498";
      owner = "Profpatsch";
      repo = "xmpp-client";
      sha256 = "0ivppc8q2cp0g88dvrlggqipfdz194i7k2irfxq6c0dlzj1638jn";
    };
  });

in
writeScriptBin "xmpp-client" ''
  #!/usr/bin/env bash
  PASS=$(${lib.getBin pass}/bin/pass "${passwordentry}" | head -n1)

  # pipe config with password in fifo
  TMP="$(mktemp -d)/fifo"
  mkfifo "$TMP"
  sed "s/@PASS@/$PASS/" ${home}/.config/xmpp-client/config > "$TMP" &


  # execute the client with logging enabled
  mkdir -p ${home}/.local/share/xmpp-client
  LOG=${home}/.local/share/xmpp-client/history
  CMD="${lib.getBin myClient}/bin/xmpp-client --config-file $TMP"
  script --append --command "$CMD" "$LOG"
''