inotify-tools: автоматическое обновление базы MPDmpd, inotify, music, linux, shell

Inotify – это функция ядра Linux, отслеживающая изменения в фс и немедленно отправляющая необходимым приложениям соответствующие события (удаление, чтение, запись, монтирование). Но не о нем, а о inotifywait, программе входящей в пакет который в ArchLinux называется inotify-tools, которая позволяет отслеживать любой набор файлов и директорий(в том числе и рекурсивно). И именно эта программа будет отсылать нам сообщения о изменениях в папке с музыкой из которой играет Music Player Daemon (MPD).
В итоге у нас получается небольшой скрипт#!/bin/bash
# Зависит от mpc(куда же без него) и inotify-tools

# наш конфиг
MPDCONF="$HOME/.mpdconf" # в домашнеей папке

# вычисляем каталог с музыкой
MUSICDIR=`cat $MPDCONF | grep "[^#]*music_directory" |head -n1| awk '{print $2}'`
# обрезаем кавычки
MUSICDIR=${MUSICDIR:1:$((${#MUSICDIR}-2))}
# а можно всё добро выше заменить на MUSICDIR="наша_папка_с_музыкой"

#собственно сама функция обнавления
function mpcUpdate() {
#путь к файлу
file=$*
# отрезаем папку с музыкой, оставляя путь в библиотеке
file=${file:$((${#MUSICDIR}+1))}
mpc update "$file" >/dev/null

}

# читаем в цикле события в папке с музыкой и производим нужное обнавления базы
inotifywait -mr -e close_write -e move -e create -e delete --format "%w%f" $MUSICDIR | while read line
do
mpcUpdate "$line"
done
Если скрипт запущен то вся музыка добавляемая в процессе его работы в каталог с музыкой будет сразу же появляться в базе, изменяемая изменяться, а удаляемая удаляться =)
25-09-2009, 13:28    Комментарии: 5
↤ А вы уже используете omploader.org?
Вывод частоиспользуемых тегов в Mosquito BM ↦



Fd # 25-09-2009, 14:39 avatarага, встречал я этот скрипт, mpc update совершенно некорректно работает с русскими кодировками в тегах.

muhas # 25-09-2009, 15:57 avatar @Fd не замечал, а в чем косяк?

Livid # 26-09-2009, 16:19 avatar@Fd
"Русские кодировки" это видимо cp1251?
Вообще-то по стандарту v2 и выше положено UTF-8. Есть тулзы для исправления чужой криворукости.
У меня все работает и с id3v2 и с flacinfo или как она там зовется.

alex.kostrukov # 30-03-2010, 19:19 avatarя поступил по другому, на incron повесил скрипт, и при создании в директории с музыкой новой директории, запускаю скрипт, который сначала переводит теги в utf,а патом обновляет базу mpd

muhas # 30-03-2010, 19:23 avatar раньше тоже что-то похожее было, однако перевод тегов в utf8 не всегда нужен а иногда и вреден, поэтому сделал inotyfy для файлов (что бы сразу теги обновлял)

nick:  http:// mail: проверочный код
подписаться на комментарии