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

cmd-certs-help() {
  declare desc="help command"
  declare CMD="$1"
  local plugin_name="certs"
  local plugin_description="Manage SSL (TLS) certs"

  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
    certs:add <app> CRT KEY, Add an ssl endpoint to an app. Can also import from a tarball on stdin
    certs:chain CRT [CRT ...], [NOT IMPLEMENTED] Print the ordered and complete chain for the given certificate
    certs:generate <app> DOMAIN, Generate a key and certificate signing request (and self-signed certificate)
    certs:key <app> CRT KEY [KEY ...], [NOT IMPLEMENTED] Print the correct key for the given certificate
    certs:remove <app>, Remove an SSL Endpoint from an app
    certs:report [<app>] [<flag>], Displays an ssl report for one or more apps
    certs:rollback <app>, [NOT IMPLEMENTED] Rollback an SSL Endpoint for an app
    certs:show <app> <crt|key>, Show the server.crt or server.key on stdout
    certs:update <app> CRT KEY, Update an SSL Endpoint on an app. Can also import from a tarball on stdin
help_content
}
