#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x

cmd-letsencrypt-help() {
  declare desc="help command"
  declare CMD="$1"
  local plugin_name="letsencrypt"
  local plugin_description="Manage the letsencrypt integration"

  if [[ "$CMD" == "${plugin_name}:help" ]]; then
    echo -e "Usage: dokku ${plugin_name}[:COMMAND]"
    echo ''
    echo "$plugin_description"
    echo ''
    echo 'Additional commands:'
    fn-help-content | sort | column -c2 -t -s,
  elif [[ $(ps -o command= $PPID) == *"--all"* ]]; then
    fn-help-content
  else
    cat <<help_desc
    $plugin_name, $plugin_description
help_desc
  fi
}

fn-help-content() {
  declare desc="return help content"
  cat <<help_content
    letsencrypt:active <app>, Verify if letsencrypt is active for an app
    letsencrypt:auto-renew [<app>], Auto-renew app if renewal is necessary
    letsencrypt:cleanup <app>, Remove stale certificate directories for app
    letsencrypt:cron-job [--add --remove], Add or remove a cron job that periodically calls auto-renew.
    letsencrypt:disable <app>, Disable letsencrypt for an app
    letsencrypt:enable <app>, Enable or renew letsencrypt for an app
    letsencrypt:help, Display letsencrypt help
    letsencrypt:list, List letsencrypt-secured apps with certificate expiry times
    letsencrypt:revoke <app>, Revoke letsencrypt certificate for app
    letsencrypt:set <app> <property> (<value>), Set or clear a letsencrypt property for an app
help_content
}
