#!/usr/bin/env bash
set -euo pipefail

# remove content of music directory
rm -rf "$HOME/Musik/"*

# change into music raw folder
pushd "$HOME/Nextcloud/MusikRaw"

# disable expansion of empty globs
shopt -s nullglob

for artdir in */; do
    # FIXME remove trailing slash
    artdir="${artdir%/}"
    # change into artist directory
    pushd "$artdir"

    for dir in */; do
        # FIXME remove trailing slash
        dir="${dir%/}"
        # change into directory
        pushd "$dir"

        for subdir in */; do
            if [ "$subdir" != "normalized/" ]; then
                # NOTE handle new paths with streaming services included
                # FIXME remove trailing slash
                subdir="${subdir%/}"
                # go into subdirectory
                pushd "$subdir"
                # create directory in music
                mkdir -p "$HOME/Musik/${artdir}/$subdir"

                # link cover image (jpg or png)
                if [ -f cover.jpg ]; then
                    ln -vf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/$subdir/cover.jpg" "$HOME/Musik/${artdir}/$subdir/"
                elif [ -f cover.png ]; then
                    ln -vf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/$subdir/cover.png" "$HOME/Musik/${artdir}/$subdir/"
                fi

                # make symbolic link to music
                # if the "normalized" directory exists, links are created
                if [ -d "normalized" ]; then
                    ln -svf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/$subdir/normalized/"* "$HOME/Musik/${artdir}/$subdir/"
                fi

                popd
            else
                # NOTE this stays the same, without streaming services included

                # create directory in music
                mkdir -p "$HOME/Musik/${artdir}/$dir"
                # link cover image (jpg or png)
                if [ -f cover.jpg ]; then
                    ln -vf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/cover.jpg" "$HOME/Musik/${artdir}/$dir/"
                elif [ -f cover.png ]; then
                    ln -vf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/cover.png" "$HOME/Musik/${artdir}/$dir/"
                fi

                # make symbolic link to music
                # if the "normalized" directory exists, links are created
                if [ -d "normalized" ]; then
                    ln -svf "$HOME/Nextcloud/MusikRaw/${artdir}/$dir/normalized/"* "$HOME/Musik/${artdir}/$dir/"
                fi
            fi
        done
        popd
    done
    popd
done
popd

echo Finished!

exit