about summary refs log tree commit diff
path: root/client.nix
blob: 67c083c8fb41c3bda99a0e3b4277ccdbd6eda45c (plain)
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
32
33
{ writeShellApplication, curl, openssh, sshpass, rsync, sshPassword, sshPort
, httpPort }:

writeShellApplication {
  name = "reMder-client";

  runtimeInputs = [ curl openssh sshpass rsync ];

  text = let
    ssh =
      "sshpass -p ${sshPassword} ssh -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${
        toString sshPort
      }";
    guest = "root@127.0.0.1";
    documentDir = "/home/root/.local/share/remarkable/xochitl";
  in ''
    in="$1"
    out="$2"

    in_basename="$(basename "$in")"

    ${ssh} ${guest} rm -rf ${documentDir}
    ${ssh} ${guest} mkdir ${documentDir}

    rsync --rsh="${ssh}" "$in" ${guest}:${documentDir}
    ${ssh} ${guest} "unzip '${documentDir}/$in_basename' -d ${documentDir}"
    doc_id="$(${ssh} ${guest} find ${documentDir} -name '\*.metadata' -exec basename {} .metadata '\;')"

    curl -f -o "$out" "http://127.0.0.1:${
      toString httpPort
    }/download/$doc_id/placeholder"
  '';
}