#!/bin/bash -r

## Copyright (C) 2019 - 2023 ENCRYPTED SUPPORT LP <adrelanos@whonix.org>
## See the file COPYING for copying conditions.

set -e

check() {
   if ! [[ "$2" =~ ^[0-9a-zA-Z_-]+$ ]]; then
      echo "$0:
\$1 (variable name): '$1'
\$2 (variable content): '$2'
Invalid character!" >&2
      exit 200
   fi
}

check "msgdisptacher_username" "${msgdisptacher_username}"
check "msgdispatcher_identifier" "${msgdispatcher_identifier}"
check "msgdispatcher_appendix" "${msgdispatcher_appendix}"

file_name="/run/msgcollector/${msgdisptacher_username}/${msgdispatcher_identifier}_${msgdispatcher_appendix}"

if [ -f "$file_name" ]; then
   true "$0: exists: $file_name"

   ## Debugging. Use rm with debugging.
   rm_exit_code=0
   rm -f "$file_name" || { rm_exit_code=$? ; true; };
   if [ "$rm_exit_code" = "0" ]; then
      true "$0: rm exit code 0, ok"
   else
      echo "\
$0: \
rm_exit_code: '$rm_exit_code' | \
file_name: '$file_name' | \
msgdisptacher_username: '$msgdisptacher_username' | \
msgdispatcher_identifier: '$msgdispatcher_identifier' | \
msgdispatcher_appendix: '$msgdispatcher_appendix' \
"
   fi
   exit_code="$(( exit_code + rm_exit_code ))"

   exit "$exit_code"
else
   true "$0: does not exist: $file_name"
fi
