#!/bin/sh
# XXX: This should be removed when elixir's releases get custom command support
if [ -z "$1" ] || [ "$1" = "help" ]; then
	echo "Usage: $(basename "$0") COMMAND [ARGS]

    The known commands are:

        create                     Create database schema (needs to be executed only once)
        migrate                    Execute database migrations (needs to be done after updates)
        rollback [VERSION]         Rollback database migrations (needs to be done before downgrading)

    and any mix tasks under Pleroma namespace, for example \`mix pleroma.user COMMAND\` is
    equivalent to \`$(basename "$0") user COMMAND\`

    By default pleroma_ctl will try calling into a running instance to execute non migration-related commands,
    if for some reason this is undesired, set PLEROMA_CTL_RPC_DISABLED environment variable
"
else
	SCRIPT=$(readlink -f "$0")
	SCRIPTPATH=$(dirname "$SCRIPT")
	if [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then
		"$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$*"'")'
	else
		"$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$*"'")'
	fi
fi