dotfiles/nixng/containers/matrix/mautrix-slack/default.nix

50 lines
1.3 KiB
Nix
Raw Normal View History

{
inputs,
config,
...
}: {
flake.nixngConfigurations.mautrixSlack = inputs.nixng.nglib.makeSystem {
system = "x86_64-linux";
name = "mautrix-slack";
inherit (inputs) nixpkgs;
config = {
pkgs,
lib,
...
}: {
dumb-init = {
enable = true;
type.services = {};
};
init.services.mautrix-slack = {
enabled = true;
shutdownOnExit = true;
script = let
inherit
(lib)
getExe'
makeBinPath
;
mautrix-slack = (pkgs.appendOverlays [config.flake.overlays.mautrix-slack]).mautrix-slack;
in
pkgs.writeShellScript "mautrix-slack"
''
DATA_DIR="/var/lib/mautrix-slack"
CONFIG_FILE="$DATA_DIR/config.yaml"
REGISTRATION_FILE="/var/lib/registrations/mautrix-slack.yaml"
${getExe' pkgs.envsubst "envsubst"} < ${./mautrix-slack.yaml} > "$CONFIG_FILE"
chmod 755 "$CONFIG_FILE"
export PATH="$PATH:${makeBinPath [pkgs.lottieconverter]};"
[ -e "$REGISTRATION_FILE" ] || \
${getExe' mautrix-slack "mautrix-slack"} -c "$CONFIG_FILE" -r "$REGISTRATION_FILE" -g
${getExe' mautrix-slack "mautrix-slack"} -c "$CONFIG_FILE" -r "$REGISTRATION_FILE" -n
'';
};
};
};
}