#!/usr/bin/env bash
#
# Recipient management.
#

# Load functions
LIB="`dirname $0`/../functions"
source "$LIB" maintenance $* || exit 1

# Command parser
keyringer_get_command "$2"

# Set recipients file
keyringer_set_new_recipients "$3"

# Syntax check and dispatcher
if [ "$COMMAND" == "ls" ]; then
  if [ ! -z "$3" ]; then
    if [ -e "$RECIPIENTS_FILE" ]; then
      cat "$RECIPIENTS_FILE"
    else
      echo "Recipients file not found: $RECIPIENTS_FILE_BASE"
      exit 1
    fi
  else
    for recipients in `ls $RECIPIENTS`; do
      echo "In recipients file $recipients:"
      echo "-----------------------------------------------------------------------------------"
      cat $RECIPIENTS/$recipients
      echo ""
    done
  fi
elif [ "$COMMAND" == "edit" ]; then
  if [ ! -z "$3" ]; then
    keyringer_create_new_recipients $RECIPIENTS_FILE
    $EDITOR "$RECIPIENTS_FILE"
    keyringer_check_recipients
    keyringer_exec git "$BASEDIR" add "$RECIPIENTS_FILE_BASE"
  else
    echo "Please specify one recipient to edit among the available:"
    # \t is a GNU extension
    # https://stackoverflow.com/questions/8400602/sed-replace-literal-tab
    ls $RECIPIENTS | sed -e "`printf 's/^/\t/'`"
    exit 1
  fi
else
  printf "%s: No such command %s\n" "$BASENAME" "$COMMAND"
  exit 1
fi
