#!/bin/sh

if [ -z "$SSH_ORIGINAL_COMMAND" ] ; then
    echo ""
    echo "Usage: ssh logs <namespace> <container_name_pattern> <lines> [grep pattern]"
    echo "Example: ssh logs shared matches-front 100"
    echo ""
    exit
fi

NSPACE=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $1}'`

if [ "$NSPACE" = "kube-system" ] || [ "$NSPACE" = "monitoring" ]; then
   echo "Access denied."
   exit
fi

SERVICE=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $2}'`

if [ -z $SERVICE ]; then
    KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} get pods
    exit
fi

CONTAINER_NAME=`KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} get pods | grep "${SERVICE}" | awk '{print $1}'`
num_lines=$(echo "$CONTAINER_NAME" | wc -l)
if [ $num_lines -gt 1 ]; then
    echo "Specify exact container name from:"
    echo ""
    echo "$CONTAINER_NAME"
    echo ""
    echo "Usage: ssh logs ${NSPACE} $SERVICE-rnd123 <lines>"
    exit
fi
echo $CONTAINER_NAME

TAIL=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $3}'`
if [ -n "$TAIL" ] && [ "$TAIL" -eq "$TAIL" ] 2>/dev/null; then
    TAIL="--tail $TAIL"
else
    TAIL=''
fi

GREP_PATTERN=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $4}'`

if [ -n "$GREP_PATTERN" ]; then
    KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} logs --timestamps --follow $TAIL $CONTAINER_NAME --all-containers | grep -E $GREP_PATTERN
else
    KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} logs --timestamps --follow $TAIL $CONTAINER_NAME --all-containers
fi;