You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
IFS='
|
|
|
|
'
|
|
|
|
script_dirS=$(cd -P "$(dirname "$BASH_SOURCE")" &>/dev/null && pwd)
|
|
|
|
|
|
|
|
# check that test command was not used
|
|
|
|
if grep -q "test" "$script_dirS"/student/file-checker.sh
|
|
|
|
then
|
|
|
|
echo "The 'test' command is not allowed in this exercise"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test ! -e file-checker; then
|
|
|
|
mkdir file-checker
|
|
|
|
cd file-checker
|
|
|
|
touch readable-and-writable readable-only readable-and-executable readable-writable-executable
|
|
|
|
chmod -x "$script_dirS/file-checker/readable-and-writable"
|
|
|
|
chmod -xw "$script_dirS/file-checker/readable-only"
|
|
|
|
chmod -w "$script_dirS/file-checker/readable-and-executable"
|
|
|
|
chmod +x "$script_dirS/file-checker/readable-and-executable"
|
|
|
|
chmod +x "$script_dirS/file-checker/readable-writable-executable"
|
|
|
|
cd ..
|
|
|
|
fi
|
|
|
|
|
|
|
|
challenge() {
|
|
|
|
submitted=$(bash "$script_dirS"/student/file-checker.sh "$1")
|
|
|
|
expected=$(bash "$script_dirS"/solutions/file-checker.sh "$1")
|
|
|
|
|
|
|
|
diff <(echo "$submitted") <(echo "$expected")
|
|
|
|
}
|
|
|
|
|
|
|
|
challenge "$script_dirS/file-checker/readable-only"
|
|
|
|
challenge "$script_dirS/file-checker/readable-and-writable"
|
|
|
|
challenge "$script_dirS/file-checker/readable-and-executable"
|
|
|
|
challenge "$script_dirS/file-checker/readable-writable-executable"
|
|
|
|
rm -rf file-checker
|