about summary refs log tree commit diff
path: root/machines/profpatsch/xmpp-client.nix
blob: f960dd29e7d9cb8e7ab839ea93cf52bcdb9070ea (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 = "785ad1629930bab03a73cc858951db1f78156743";
      owner = "Profpatsch";
      repo = "xmpp-client";
      sha256 = "02nlx5kx0s1rz9rsyncgi9hmb62i1pl322a91ama4sm00qbi4fs7";
    };
  });

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"
''