From e746990da288217369eb60696fa20691cb5ae522 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 28 Apr 2024 23:21:20 +0200 Subject: [PATCH] Create 91-config.sh --- .../rootfs/etc/cont-init.d/91-config.sh | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 birdnet-pi/rootfs/etc/cont-init.d/91-config.sh diff --git a/birdnet-pi/rootfs/etc/cont-init.d/91-config.sh b/birdnet-pi/rootfs/etc/cont-init.d/91-config.sh new file mode 100644 index 0000000000..d58e877020 --- /dev/null +++ b/birdnet-pi/rootfs/etc/cont-init.d/91-config.sh @@ -0,0 +1,61 @@ + +############### +# SET /CONFIG # +############### + +echo " " +bashio::log.info "Ensuring the file structure is correct :" + +# Define structure +echo "... creating default files" +touch /config/apprise.txt +touch /config/include_species_list.txt +touch /config/exclude_species_list.txt +touch /config/IdentifiedSoFar.txt + +# Set BirdSongs folder +BIRDSONGS_FOLDER="/config/BirdSongs" +if bashio::config.has_value "BIRDSONGS_FOLDER"; then + BIRDSONGS_FOLDER_OPTION="$(bashio::config "BIRDSONGS_FOLDER")" + echo "... BIRDSONGS_FOLDER set to $BIRDSONGS_FOLDER_OPTION" + mkdir -p "$BIRDSONGS_FOLDER_OPTION" || bashio::log.fatal "...... folder couldn't be created" + chown -R pi:pi "$BIRDSONGS_FOLDER_OPTION" || bashio::log.fatal "...... folder couldn't be given permissions for 1000:1000" + if [ -d "$BIRDSONGS_FOLDER_OPTION" ] && [ "$(stat -c '%u:%g' "$BIRDSONGS_FOLDER_OPTION")" == "1000:1000" ]; then + BIRDSONGS_FOLDER="$BIRDSONGS_FOLDER_OPTION" + else + bashio::log.yellow "BIRDSONGS_FOLDER reverted to /config/BirdSongs" + fi +fi +echo "... creating default folders ; it is highly recommended to store those on a ssd" +mkdir -p "$BIRDSONGS_FOLDER"/By_Date +mkdir -p "$BIRDSONGS_FOLDER"/Charts + +echo "... setting StreamData and Processed on tmpfs to reduce disk wear" +mkdir -p /tmp/StreamData +mkdir -p /tmp/Processed +rm -r "$HOME"/BirdSongs/StreamData +rm -r "$HOME"/BirdSongs/Processed +sudo -u pi ln -fs /tmp/StreamData "$HOME"/BirdSongs/StreamData +sudo -u pi ln -fs /tmp/Processed "$HOME"/BirdSongs/Processed + +# Permissions +echo "... set permissions to user pi" +chown -R pi:pi /config /etc/birdnet "$BIRDSONGS_FOLDER" /tmp + +# Symlink files +for files in "$HOME/BirdNET-Pi/birdnet.conf" "$HOME/BirdNET-Pi/scripts/birds.db" "$HOME/BirdNET-Pi/apprise.txt" "$HOME/BirdNET-Pi/exclude_species_list.txt" "$HOME/BirdNET-Pi/include_species_list.txt" "$HOME/BirdNET-Pi/IdentifiedSoFar.txt"; do + filename="${files##*/}" + echo "... creating symlink for $filename" + if [ ! -f /config/"$filename" ]; then echo "... copying $filename" && sudo -u pi mv "$files" /config/; fi + if [ -e "$files" ]; then rm "$files"; fi + sudo -u pi ln -fs /config/"$filename" "$files" + sudo -u pi ln -fs /config/"$filename" /etc/birdnet/"$filename" + chmod 664 /config/* +done + +# Symlink folders +for folders in By_Date Charts; do + echo "... creating symlink for $BIRDSONGS_FOLDER/$folders" + rm -r "$HOME/BirdSongs/Extracted/${folders:?}" + sudo -u pi ln -fs "$BIRDSONGS_FOLDER"/"$folders" "$HOME/BirdSongs/Extracted/$folders" +done