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

cmd-git-help() {
  declare desc="help command"
  declare CMD="$1"
  local plugin_name="git"
  local plugin_description="Manage app deploys via git"

  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
    git:allow-host <host>, Adds a host to known_hosts
    git:auth <host> [<username> <password>], Configures netrc authentication for a given git server
    git:from-archive <app> <archive-url> [<git-username> <git-email>], Updates an app's git repository with a given archive file
    git:from-image <app> <docker-image> [<git-username> <git-email>], Updates an app's git repository with a given docker image
    git:load-image <app> <docker-image> [<git-username> <git-email>], Updates an app's git repository with a docker image loaded from stdin
    git:sync [--build] <app> <repository> [<git-ref>], Clone or fetch an app from remote git repo
    git:initialize <app>, Initialize a git repository for an app
    git:public-key, Outputs the dokku public deploy key
    git:report [<app>] [<flag>], Displays a git report for one or more apps
    git:set <app> <property> (<value>), Set or clear a git property for an app
    git:unlock <app> [--force], Removes previous git clone folder for new deployment 
    git:status <app>, show the working tree status for an app
help_content
}
