scripts/create-monitor-user

30 lines
1.2 KiB
Text
Raw Normal View History

2023-06-06 14:35:55 +02:00
#!/bin/sh
KEY="$(sed -n '/^env.KEY/ s/^env.KEY \(.*\)/\1/p' /etc/munin/plugin-conf.d/weblate_servers)"
SERVER="$(sed -n '/^env.SERVER/ s/^env.SERVER \(.*\)/\1/p' /etc/munin/plugin-conf.d/weblate_servers)"
2025-04-08 11:35:17 +02:00
if [ -z "$SERVER" ]; then
2025-07-16 15:11:55 +02:00
echo "Missing server configuration!"
exit 1
2023-06-06 14:35:55 +02:00
fi
2025-04-08 11:35:17 +02:00
if [ -n "$KEY" ]; then
2025-07-16 15:11:55 +02:00
if ! curl -f -s -H "Authorization: Token $KEY" "${SERVER}api/metrics/" -o /dev/null; then
echo "Key not working, recreating"
KEY=""
fi
2023-06-06 14:35:55 +02:00
fi
2025-04-08 11:35:17 +02:00
if [ -z "$KEY" ]; then
2023-06-06 15:15:11 +02:00
2025-07-16 15:11:55 +02:00
echo "Generating new key"
if [ -f "/home/weblate/weblate/docker-compose.override.yml" ]; then
cd /home/weblate/weblate || exit 1
KEY="$(sudo -u weblate docker compose exec --user weblate weblate weblate shell --no-imports -c 'from weblate.auth.models import User; user = User.objects.get_or_create(username="monitor")[0]; print(user.auth_token.key)')"
else
KEY="$(sudo -u weblate /home/weblate/weblate-env/bin/weblate shell --no-imports -c 'from weblate.auth.models import User; user = User.objects.get_or_create(username="monitor")[0]; print(user.auth_token.key)')"
fi
2023-06-06 14:37:54 +02:00
2025-07-16 15:11:55 +02:00
sed -i "s/^env.KEY .*/env.KEY $KEY/" /etc/munin/plugin-conf.d/weblate_servers
2023-06-06 14:35:55 +02:00
fi