LINUX.ORG.RU
ФорумTalks

[mpd][софт]Может быть кому окажется интересным


0

0
#!/bin/sh 
#Variables
destination_dir=$1
mpd_conf=<path/to/mpd.conf>
music_dir=$(cat $mpd_conf|awk '/^music/'|cut -d\" -f2)
mpdstate=$(cat $mpd_conf|awk '/^state/'|cut -d\" -f2)

#Automatic variables
num=0
count=$(cat $mpdstate |awk '/^[0-9]*:/'|wc -l)
dir=$(cat $mpdstate|grep -e ^$num: | awk -F"^[0-9]*:" '{ print $2 }' | awk -F'/' '{for (i=1; i< NF; i++ ) printf $i "/"}')
file=$(cat $mpdstate|grep -e ^$num: | awk -F"^[0-9]*:" '{ print $2 }')

#Test
mkdir -p $destination_dir
if test ! -w "$destination_dir" ; then
    echo -e '\E[0;31m'"\033[1mYou have no permission to write there, or we have i\o error\033[0m"
exit
fi

echo -e '\E[0;32m'"\033[1mSynchronizing...\033[0m"

#Main cycle
while [ "$dir" != "" ]
do
    mkdir -p "$destination_dir/$dir"
    cp -n "$music_dir/$file" "$destination_dir/$file"
    let num++
    echo -ne "\rComplete:   $num/$count"
    dir=$(cat $mpdstate|grep -e ^$num: | awk -F"^[0-9]*:" '{ print $2 }' | awk -F'/' '{for (i=1; i< NF; i++ ) printf $i "/"}')
    file=$(cat $mpdstate|grep -e ^$num: | awk -F"^[0-9]*:" '{ print $2 }')
done
echo -e '\n'

Программка синхронизирует текущий список треков в плей-листе с указанным вами местоположением. Полезно для закидывания большой коллекции куда-то ещё. В параметр ей указывается директория, куда копировать, в самом скрипте необходимо указать только путь к файлу конфигурации, дальше скрипт сам парсит конфиг на предмет music_dir и файла mpdstate. Копирование осуществляется с сохранением структуры папок, sync оно не делает, так что при копировании стоит делать его вручную.


itunes на bash? нет пути!

Turbid ★★★★★ ()
Ответ на: комментарий от Alsvartr

А еще таким же макаром можно сделать динамические плейлисты, ага. И будет медленный Амарок для маргиналов.

Alsvartr ★★★★★ ()
Ответ на: комментарий от Alsvartr

Ну, динамические плейлисты мне не нужны, а вот скинуть то, что понравилось на плеер хочется довольно часто.

arknir ()
Ответ на: комментарий от xorik

консоль же. собственно поэтому никаких drag-n-drop.

arknir ()

Thx. Недавно лепил для этого однострочник. Буду пользоваться твоим скриптом.

baverman ★★★ ()

Что-ж, кому-то всё-таки пригодилось =) Рад.

arknir ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.