diff --git a/tools/radioctl b/tools/radioctl new file mode 100644 index 0000000..e3ebc0a --- /dev/null +++ b/tools/radioctl @@ -0,0 +1,44 @@ +#!/usr/bin/sh + +radio_dir=/srv/radio +out=$radio_dir/filelist.html + +case $1 in + f | filelist) + if [[ -n "$2" ]]; then + out=$2 + fi + tree -H '' -T "Arav's dwelling / Radio / List" \ + -P '*.ogg' --charset=utf-8 --prune --du -hnl \ + --nolinks -o $out $radio_dir/music + break + ;; + p | playlist) + find -L $radio_dir/music/* -type f -iname '*.ogg' | + cut -c 18- | 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 + ffmpeg -hide_banner -i "$file" -y -vn -c:a libvorbis -b:a 128k "${file%.*}.ogg"; + if [ $? -eq 0 ] && [ $2 = "del" ]; then + rm "$file"; + fi + done + break + ;; + *) + echo "f|ilelist - to generate a filelist.html" + echo "p|laylist - to generate a playlist 'all'" + echo "s|huffle - to shuffle a playlist and store as all-rand" + echo "c|onvert DIR - convert all files in DIR to ogg" + exit + ;; +esac \ No newline at end of file