#!/usr/bin/sh radio_dir=/mnt/data/appdata/radio case $1 in f | filelist) tree -H '' -T "List – Arav's dwelling / Radio" \ -P '*.ogg' --charset=utf-8 --prune --du -hnl \ --nolinks -o $radio_dir/filelist.html $radio_dir/music break ;; p | playlist) find -L $radio_dir/music/* -type f -iname '*.ogg' | cut -c 31- | sort -d > $radio_dir/playlists/all break ;; ep | ez-playlist) find -L $radio_dir/music/* -type f -iname '*.ogg' | sort -d > $radio_dir/playlists/all break ;; s | shuffle) shuf $radio_dir/playlists/all > $radio_dir/playlists/all-rand break ;; c | convert) for file in "$2"/*; do if [[ "$file" == *.ogg ]]; then continue; fi if [ -f "${file%.*}.ogg" ]; then continue; fi ffmpeg -hide_banner -i "$file" -y -vn -c:a libvorbis -b:a 128k "${file%.*}.ogg"; if [ $? -eq 0 ] && [ $3 = "del" ]; then rm "$file"; fi done break ;; d | duration) find $radio_dir/music -iname '*.ogg' -exec ffprobe -i "{}" \ -show_entries format=duration -v quiet -of csv="p=0" \; | paste -s -d+ - | bc break ;; er | ez-reload) pkill -HUP ezstream break ;; dr | dw-reload) pkill -HUP dwelling-radio break ;; *) echo "f|ilelist - to generate a filelist.html" echo "p|laylist - to generate a playlist 'all'" echo "ep|ez-playlist- - to generate a playlist 'all' with full paths" echo "s|huffle - to shuffle a playlist and store as all-rand" echo "c|onvert DIR - convert all files in DIR to ogg" echo "d|uration - get total songs' duration" echo "er|ez-reload - send SIGHUP to ezstream to reload a playlist" echo "dr|dw-reload - send SIGHUP to dwelling-radio to reload a playlist" exit ;; esac