50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
|
# Wrapper script that uses offlineimap to fetch the depot inbox from
|
||
|
# inbox.tvl.su.
|
||
|
#
|
||
|
# Run with the desired output directory as the only argument.
|
||
|
#
|
||
|
# Alternatively, users can browse the inbox on https://inbox.tvl.su
|
||
|
# and interact with public-inbox in any other supported way (IMAP,
|
||
|
# NNTP, git, etc.).
|
||
|
{ pkgs, depot, ... }:
|
||
|
|
||
|
let
|
||
|
config = pkgs.writeText "offlineimaprc" ''
|
||
|
[general]
|
||
|
accounts = depot
|
||
|
|
||
|
[Account depot]
|
||
|
localrepository = Local
|
||
|
remoterepository = Remote
|
||
|
|
||
|
[Repository Local]
|
||
|
type = Maildir
|
||
|
# localfolders set by CLI
|
||
|
|
||
|
[Repository Remote]
|
||
|
type = IMAP
|
||
|
ssl = yes
|
||
|
sslcacertfile = /etc/ssl/certs/ca-bundle.crt
|
||
|
remotehost = inbox.tvl.su
|
||
|
remoteuser = anonymous
|
||
|
remotepass = anonymous
|
||
|
'';
|
||
|
in
|
||
|
pkgs.writeShellScriptBin "fetch-depot-inbox" ''
|
||
|
readonly MAILDIR=''${1}
|
||
|
|
||
|
if [ -z "''${MAILDIR}" ]; then
|
||
|
echo "[inbox] must specify target maildir as the first argument!" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ ! -d "''${MAILDIR}" ]; then
|
||
|
echo "[inbox] specified maildir must exist and be a directory!" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo "[inbox] Synchronising TVL depot inbox into ''${MAILDIR}"
|
||
|
${pkgs.offlineimap}/bin/offlineimap -c ${config} \
|
||
|
-k "Repository_Local:localfolders=''${MAILDIR}"
|
||
|
''
|