#!/bin/bash

cache=""

# Parse arguments.
while (( $# > 0 )); do
    case "$1" in
        -c)
            shift
            cache=$1
            shift
        ;;
    esac
done

# If cache file isn't expected path, return error.
if ! [[ $cache =~ \/tmp\/krb5_cache_.* ]]; then
    echo "klist: No credentials cache found (filename: $cache)"
    exit 1
fi

# Return basic klist response.
cat <<EOF
Ticket cache: FILE:$cache
Default principal: host/ipa1.example.com@EXAMPLE.COM

Valid starting       Expires              Service principal
08/30/2023 17:04:18  08/31/2050 17:04:18  krbtgt/EXAMPLE.COM@EXAMPLE.COM
EOF

# Return zero exit
exit 0