[ -n "$MUSIC_PATH" ] \
|| errlog "missing MUSIC_PATH in $CONFIG_FILE" \
|| return $?
+ [ -d "$MUSIC_PATH" ] \
+ || errlog "directory $MUSIC_PATH does not exists" \
+ || return $?
+ MUSIC_PATH=$(realpath "$MUSIC_PATH")
LIB_PATH=${LIB_PATH:-"$scriptpath/lib"}
OUTPUT_PATH=${OUTPUT_PATH:-"work.$$"}
}
[ -d "$MUSIC_PATH/$album" ] \
|| errlog "directory $MUSIC_PATH/$album does not exists" \
|| return $?
+ cp --recursive \
+ --symbolic-link \
+ "$MUSIC_PATH/$album" \
+ "$OUTPUT_PATH"
done
}
setup() {
bats_load_library 'bats-support'
bats_load_library 'bats-assert'
- mkdir --parents "build/tests"
+ mkdir --parents "build/tests/music"
echo "Alben/Artist1" > "build/tests/albumlist"
export TEST_MODE="ON"
export CONFIG_FILE="tests/test.conf"
assert_line --index 0 "❌ ERROR: missing build/tests/nothing.conf"
}
-@test "failed: missing MUSIC_PATHES" {
+@test "failed: missing MUSIC_PATH" {
CONFIG_FILE="build/tests/albentohandy.conf"
echo "" > "$CONFIG_FILE"
assert_line --index 0 "❌ ERROR: missing MUSIC_PATH in build/tests/albentohandy.conf"
}
+@test "failed: directory MUSIC_PATH does not exists" {
+ CONFIG_FILE="build/tests/albentohandy.conf"
+ echo "MUSIC_PATH=build/tests/not_exists" > "$CONFIG_FILE"
+
+ run main
+
+ assert_failure
+ assert_line --index 0 "❌ ERROR: directory build/tests/not_exists does not exists"
+}
+
@test "failed: lib vorbis.sh not found" {
LIB_PATH="build/tests/lib"
run main -i "build/tests/albumlist"
assert_failure
- assert_line --index 0 "❌ ERROR: directory build/tests/music/Alben/Artist1 does not exists"
+ assert_output --partial "build/tests/music/Alben/Artist1 does not exists"
+}
+
+@test "success: create symlink for Alben/Artist1/file.flac" {
+ mkdir --parents "build/tests/output"
+ mkdir --parents "build/tests/music/Alben/Artist1"
+ echo "testfile" > "build/tests/music/Alben/Artist1/file.flac"
+
+ run main -i "build/tests/albumlist"
+
+ assert_success
+ [ -h "build/tests/output/Artist1/file.flac" ]
}
\ No newline at end of file