{ 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"; baseUrl = "http://127.0.0.1:${toString httpPort}"; in '' in="$1" out="$2" ${ssh} ${guest} rm -rf ${documentDir} ${ssh} ${guest} mkdir ${documentDir} curl \ '${baseUrl}/upload' \ -H 'Origin: http://10.11.99.1' \ -H 'Accept: */*' \ -H 'Referer: http://10.11.99.1/' \ -H 'Connection: keep-alive' \ -F "file=@$in;filename=to-render.rmdoc;type=application/octet-stream" doc_id="$(${ssh} ${guest} find ${documentDir} -name '\*.metadata' -exec basename {} .metadata '\;')" curl -f -o "$out" "${baseUrl}/download/$doc_id/placeholder" ''; }