{inputs, ...}: { flake.nixngConfigurations.mautrixFacebook = inputs.nixng.nglib.makeSystem { system = "x86_64-linux"; name = "mautrix-facebook"; inherit (inputs) nixpkgs; config = { pkgs, lib, ... }: let inherit (lib) singleton ; in { dumb-init = { enable = true; type.services = {}; }; init.services.mautrix-facebook = { enabled = true; shutdownOnExit = true; script = let mautrix-facebook = pkgs.mautrix-facebook.overridePythonAttrs (old: { propagatedBuildInputs = singleton pkgs.python3.pkgs.aiosqlite ++ old.propagatedBuildInputs; }); in pkgs.writeShellScript "mautrix-facebook" '' DATA_DIR="/var/lib/mautrix-facebook" CONFIG_FILE="$DATA_DIR/config.yaml" REGISTRATION_FILE="/var/lib/registrations/mautrix-facebook.yaml" DB_FILE="$DATA_DIR/sqlite.db" cp ${./mautrix-facebook.yaml} "$CONFIG_FILE" ; chmod 755 "$CONFIG_FILE" ${pkgs.sqlite}/bin/sqlite3 $DB_FILE '.databases ; .quit' [ -e "$REGISTRATION_FILE" ] || \ ${mautrix-facebook}/bin/mautrix-facebook -c "$CONFIG_FILE" -r "$REGISTRATION_FILE" -g ${mautrix-facebook}/bin/mautrix-facebook -c "$CONFIG_FILE" -r "$REGISTRATION_FILE" -n ''; }; }; }; }