summarylogtreecommitdiffstats
path: root/praxis.install
blob: aef0fee7c16a29c6a172d13646eb9d3bf8687fa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#
# Mirrors what scripts/install.sh --service native does on Arch:
#   - ensures rabbitmq is running and the praxis user exists in it
#   - enables and starts praxis-service.service
#

post_install() {
    if ! systemctl is-active --quiet rabbitmq 2>/dev/null; then
        echo ":: Starting rabbitmq..."
        systemctl start rabbitmq 2>/dev/null || true
        sleep 2
    fi

    if rabbitmqctl list_users 2>/dev/null | awk '{print $1}' | grep -qx 'praxis'; then
        echo ":: RabbitMQ user 'praxis' already exists"
    else
        echo ":: Creating RabbitMQ user 'praxis'..."
        rabbitmqctl add_user praxis praxis 2>/dev/null || true
        rabbitmqctl set_permissions praxis ".*" ".*" ".*" 2>/dev/null || true
    fi

    echo ":: Enabling and starting praxis-service.service..."
    systemctl daemon-reload 2>/dev/null || true
    systemctl enable --now praxis-service.service 2>/dev/null || \
        echo ":: WARNING: failed to enable praxis-service.service — start manually with: sudo systemctl enable --now praxis-service"

    echo ""
    echo ":: Praxis installed."
    echo "     praxisctl status"
    echo "     praxisctl set-rabbitmqurl amqp://praxis:praxis@localhost:5672"
    echo "     praxis                    # interactive TUI"
    echo ""
    echo ":: Config:      /etc/praxis/env"
    echo ":: Data:        /var/lib/praxis"
    echo ":: Node binary: /usr/share/praxis/nodes/praxis_node_linux"
}

post_upgrade() {
    if systemctl is-active --quiet rabbitmq 2>/dev/null; then
        if ! rabbitmqctl list_users 2>/dev/null | awk '{print $1}' | grep -qx 'praxis'; then
            echo ":: Creating RabbitMQ user 'praxis'..."
            rabbitmqctl add_user praxis praxis 2>/dev/null || true
            rabbitmqctl set_permissions praxis ".*" ".*" ".*" 2>/dev/null || true
        fi
    fi

    systemctl daemon-reload 2>/dev/null || true
    if systemctl is-enabled --quiet praxis-service.service 2>/dev/null; then
        echo ":: Restart Praxis to apply changes:"
        echo "     sudo systemctl restart praxis-service"
    fi
}

pre_remove() {
    systemctl disable --now praxis-service.service 2>/dev/null || true
}