#!/usr/bin/env bash

# Unofficial Bash Strict Mode
set -euo pipefail
IFS='
'

FILENAME="student/in-back-ground.sh"
script_dirS=$(cd -P "$(dirname "$BASH_SOURCE")" &>/dev/null && pwd)

echo "- Australia is wider than the moon. The moon sits at 3400km in diameter, while Australia's diameter from east to west is almost 4000km." >facts

challenge() {
    submitted=$(cd "$1" && bash "$script_dirS"/$FILENAME)
    std_out=$(cat output.txt)
    expected=$(cd "$1" && bash "$script_dirS"/solutions/in-back-ground.sh)
    sol_out=$(cat output.txt)
    diff <(echo "$submitted") <(echo "$expected")
    diff <(echo "$std_out") <(echo "$sol_out")
}

challenge_no_output() {
    if [[ -f output.txt ]]; then
        exit 1
    fi
    submitted=$(cd "$1" && bash "$script_dirS"/$FILENAME)
    expected=$(cd "$1" && bash "$script_dirS"/solutions/in-back-ground.sh)
    diff <(echo "$submitted") <(echo "$expected")
}

if [[ $(cat $FILENAME | grep 'nohup' | wc -l) -lt 1 ]]; then
    echo "The file does not contain the required commands"
    exit 1
fi

challenge .
rm output.txt

echo "The sun is a star!" >facts
challenge_no_output .
