#!/bin/bash

## Init is run on host
## For now it is run every time the script is launched, but
## it should be launched only once after build.

## Accessible variables are:
## - SERVICE_NAME        Name of current service
## - DOCKER_BASE_IMAGE   Base image from which this service might be built if any
## - SERVICE_DATASTORE           Location on host of the DATASTORE of this service
## - SERVICE_CONFIGSTORE         Location on host of the CONFIGSTORE of this service


. lib/common

set -e

version=$(options-get version) || exit 1
type=$(options-get type) || exit 1

minecraft:init-binary "${type:-legacy}" "$version"

threads=$(options-get threads) || exit 1
mem=$(options-get mem) || exit 1

minecraft:init-command "$threads" "$mem"

properties=$(options-get properties) || true

whitelist=$(options-get whitelist) || true
minecraft:make-whitelist "$whitelist"
if [ -n "$whitelist" ]; then
    properties="$(
        e "$properties" |
            yq '.white-list = true, .enforce-whitelist = true'
    )"
fi


ops=$(options-get ops) || true
minecraft:make-ops "$ops"

minecraft:make-properties "$properties"

service_def=$(get_compose_service_def "$SERVICE_NAME") || exit 1
minecraft:config-hash "$service_def"