#!/bin/sh /etc/rc.common

#
# Copyright (C) 2026 Nethesis S.r.l.
# SPDX-License-Identifier: GPL-2.0-only
#

# shellcheck disable=SC3043

START=99
USE_PROCD=1

PROG="/usr/bin/victoria-metrics"

start_service() {
    config_load victoria-metrics
    local storage_path retention_period http_listen_addr
    config_get storage_path main storage_path
    config_get retention_period main retention_period
    config_get http_listen_addr main http_listen_addr 127.0.0.1:8428

    # Detect if external storage is mounted
    local disk_mount
    config_load fstab
    config_get disk_mount ns_data target

    # Auto-detect storage_path if not customized
    if [ -z "$storage_path" ]; then
        if [ -n "$disk_mount" ]; then
            storage_path="$disk_mount/victoria-metrics-data"
        else
            storage_path="/var/lib/victoria-metrics-data"
        fi
    fi

    # Set retention_period default based on storage availability
    if [ -z "$retention_period" ]; then
        if [ -n "$disk_mount" ]; then
            retention_period="1y"
        else
            retention_period="7d"
        fi
    fi

    procd_open_instance
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param respawn 3600 5 0
    procd_set_param command $PROG
    procd_append_param command -storageDataPath="$storage_path"
    procd_append_param command -retentionPeriod="$retention_period"
    procd_append_param command -httpListenAddr="$http_listen_addr"
    procd_close_instance
}

service_triggers()
{
    procd_add_reload_trigger victoria-metrics
}

reload_service()
{
    stop
    start
}
