From a9fb1d128164305715e265bd8039158d16b02791 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 15 Mar 2024 14:26:10 +0000 Subject: [PATCH] Added Matrix Whatsapp bridge --- lib/matrixwhatsapp.sh | 106 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 lib/matrixwhatsapp.sh diff --git a/lib/matrixwhatsapp.sh b/lib/matrixwhatsapp.sh new file mode 100644 index 0000000..9f078aa --- /dev/null +++ b/lib/matrixwhatsapp.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# +# Matrix Whatsapp Service + +PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +config_matrixwhatsapp() { + echo -ne "\n* Configuring /federated/apps/matrixwhatsapp container.." + spin & + SPINPID=$! + + if [ ! -d "/federated/apps/matrixwhatsapp" ]; then + mkdir -p /federated/apps/matrixwhatsapp/data + fi + +cat > /federated/apps/matrixwhatsapp/docker-compose.yml < /federated/apps/matrixwhatsapp/.env < /dev/null +docker exec postgresql psql -U postgres -c "CREATE DATABASE matrixwhatsapp" &> /dev/null +docker exec postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE matrixwhatsapp TO matrixwhatsapp" &> /dev/null + +# Run again to create the registration file +docker run --rm -v /federated/apps/matrixwhatsapp/data:/data:z dock.mau.dev/mautrix/whatsapp:latest + +# Insert our Matrix Slack config into Matrix homeserverl.yaml +cp /federated/apps/matrixwhatsapp/data/registration.yaml /federated/apps/matrix/data/matrix/matrixwhatsapp-registration.yaml +cat >> /federated/apps/matrix/data/matrix/homeserver.yaml < /dev/null +echo -ne "done." +} +start_matrixwhatsapp() { + # Start service with command to make sure it's up before proceeding + start_service "matrixwhatsapp" "nc -z 172.99.0.81 29328 &> /dev/null" "7" + + kill -9 $SPINPID &> /dev/null + echo -ne "done." +} +uninstall_matrixwhatsapp() { + echo -ne "* Uninstalling matrixwhatsapp container.." + spin & + SPINPID=$! + + # First stop the service + cd /federated/apps/matrixwhatsapp && docker-compose -f docker-compose.yml -p matrixwhatsapp down &> /dev/null + + # Delete database and user in postgresql + docker exec postgresql psql -U postgres -c "DROP DATABASE matrixwhatsapp" &> /dev/null + docker exec postgresql psql -U postgres -c "DROP USER matrixwhatsapp" &> /dev/null + + # Delete the app directory + rm -rf /federated/apps/matrixwhatsapp + + kill -9 $SPINPID &> /dev/null + echo -ne "done.\n" +}