#!/usr/bin/with-contenv bash
# shellcheck shell=bash

mkdir -p /config/{extensions,data,workspace,.ssh}

if [[ -z ${LSIO_NON_ROOT_USER} ]] && [[ -z ${LSIO_READ_ONLY_FS} ]]; then
    if [[ -n "${SUDO_PASSWORD}" ]] || [[ -n "${SUDO_PASSWORD_HASH}" ]]; then
        echo "setting up sudo access"
        if ! grep -q 'abc' /etc/sudoers; then
            echo "adding abc to sudoers"
            echo "abc ALL=(ALL:ALL) ALL" >> /etc/sudoers
        fi
        if [[ -n "${SUDO_PASSWORD_HASH}" ]]; then
            echo "setting sudo password using sudo password hash"
            sed -i "s|^abc:\!:|abc:${SUDO_PASSWORD_HASH}:|" /etc/shadow
        else
            echo "setting sudo password using SUDO_PASSWORD env var"
            echo -e "${SUDO_PASSWORD}\n${SUDO_PASSWORD}" | passwd abc
        fi
    fi
fi

if [[ ! -f /config/.bashrc ]]; then
    cp /root/.bashrc /config/.bashrc
fi

if [[ ! -f /config/.profile ]]; then
    cp /root/.profile /config/.profile
fi

if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
    # fix permissions (ignore contents of workspace)
    PUID=${PUID:-911}
    if [[ ! "$(stat -c %u /config/.profile)" == "${PUID}" ]]; then
        echo "Change in ownership or new install detected, please be patient while we chown existing files"
        echo "This could take some time"
        find /config -path "/config/workspace" -prune -o -exec lsiown abc:abc {} +
        lsiown abc:abc /config/workspace
    fi
    chmod 700 /config/.ssh
    if [[ -n "$(ls -A /config/.ssh)" ]]; then
        find /config/.ssh/ -type d -exec chmod 700 '{}' \;
        find /config/.ssh/ -type f -exec chmod 600 '{}' \;
        find /config/.ssh/ -type f -iname '*.pub' -exec chmod 644 '{}' \;
    fi
fi
