#!/bin/sh

set -e

# Get UID/GID from volume dir
VOLUME_UID=$(stat -c '%u' $VOLUME_DIR)
VOLUME_GID=$(stat -c '%g' $VOLUME_DIR)

MY_UID=$(id -u)
MY_GID=$(id -g)

# Run as custom user
if [ "$MY_GID" != "$VOLUME_GID" ] || [ "$MY_UID" != "$VOLUME_UID" ]; then
    # create or modify user and group to match expected uid/gid
    groupadd --gid $VOLUME_GID archivist || groupmod -o --gid $VOLUME_GID archivist
    useradd -ms /bin/bash -u $VOLUME_UID -g $VOLUME_GID archivist || usermod -o -u $VOLUME_UID archivist

    # initialize a collection if defined and not present
    if [ -n "$INIT_COLLECTION" ] && [ ! -d $VOLUME_DIR/collections/$INIT_COLLECTION ]; then
        su archivist -c "wb-manager init $INIT_COLLECTION"
    fi

    cmd="cd $PWD; $@"

    # run process as new archivist user
    su archivist -c "$cmd"

# run as current user (root)
else
    # initialize a collection if defined and not present
    if [ -n "$INIT_COLLECTION" ] && [ ! -d $VOLUME_DIR/collections/$INIT_COLLECTION ]; then
        wb-manager init $INIT_COLLECTION
    fi

    # run process directly
    exec $@
fi