main
 1#!/bin/sh
 2# Demeter-specific setup
 3
 4# Enable DNS services
 5rc-update add named default
 6
 7# Enable MQTT broker
 8rc-update add mosquitto default
 9
10# Create mosquitto password file init script
11# (converts plain password from age secret to hashed password file)
12cat > /etc/init.d/mosquitto-password << 'INITEOF'
13#!/sbin/openrc-run
14description="Generate mosquitto password file from decrypted secret"
15
16depend() {
17    after secrets
18    before mosquitto
19}
20
21start() {
22    local plain="/run/secrets/mosquitto-homeassistant-password"
23    local pwfile="/run/secrets/mosquitto-password"
24    if [ ! -f "$plain" ]; then
25        ewarn "Mosquitto password secret not found"
26        return 0
27    fi
28    ebegin "Generating mosquitto password file"
29    printf 'homeassistant:%s\n' "$(cat "$plain")" > "$pwfile"
30    mosquitto_passwd -U "$pwfile"
31    chown mosquitto:mosquitto "$pwfile"
32    chmod 400 "$pwfile"
33    eend $?
34}
35INITEOF
36chmod +x /etc/init.d/mosquitto-password
37rc-update add mosquitto-password default