Hillman -- новый инструмент монтирования дисков

OldMan
Я про другое – крайняя версия уж три месяца как наполовину не работает, а никто даже не пожаловался!
Ну я так понимаю, что ты и сам не пользовался? Я обнаружил недавно, хочу попросить дать мне шанс!

OldMan
Поэтому какой смысл что-то улучшать? Раньше не пользовались этим, а теперь будут не пользоваться тем?
Я уверяю, что разместив пакет версии 0.2 в Linux репозитории и создав тему в /dev/null популярности не приобретешь =) Эх был бы программистом, помог бы…
Я вот надеюсь и жду, когда будет уведомление об устройстве и возможность сразу с меню открыть монтированную папку. Ну а более мне и не нужно, всё готово, осталось только допилить =)

З.Ы.: Спасибо за возможность скрыть лишние разделы и адекватный не-xml конфиг =)

Пожелания:
1) Уведомление о новом подключенном устройстве (Звуковое тоже бы не плохо, я сколько себя помню всегда юзал alsa, но учитывая, что некоторые любят повыпендриваться, звук может стать костылями)
2) Открыть папку с точкой монтирования (можно в терминале, чем проще, тем лучше для меня)
3) Если устройство занято, то показать кем именно (Например, добавить “подробнее >” и туда вывод lsof | grep <mount_point> | awk ‘{print $1 $9}’ , ну и убрать повторяющиеся строки, я не знаю как это, посмотрю…) - я не понимаю, почему до сей поры, ни в одной системе я этого не увидел =\ У меня по 20-30 запущенный приложений, 10 из них демонов и как мне гадать, кто там не отпускает раздел?

Удачи!
Oldman, а как ловится событие появления нового устройства в системе?
до, добавить параметр открыть, причем команду для открытия сделать настраиваемой. а лучше сделать списком, по дефолту - первый пункт, а из меню - все остальное.

скрипт для монтирования, правда для вызова нужно переделать малость сам hillman, не стал делать парсер опций, что бы получить устройство, поэтому принимает жестко: <device> <mount-point>
#!/bin/bash
allow_mount_all=0
mount_param=""
umount_param=""
default_mount_ops="defaults"
uid=`id -u`
if [ $uid -ne 0 ]; then
  echo "Should be run as super-user or via sudo"
  exit 1
fi
name=`basename $0`
is_symlink()
{
  [ -n "$(file "$1" | grep -i 'symbolic link to')" ] && return 0 || return 1
}
resolve_symlink()
{
  src=$1
  while true
  do
    if is_symlink $src; then
      target=$(LANG=C ls -l $src | awk -F'->' '{print $2}' | awk '{print $1}')
      path="$(dirname $src)"
      if echo $target | grep '^/' > /dev/null 2>&1; then
        src="$target"
      else
        src="$path/$target"
      fi
    else
      echo $src
      return 0
    fi
  done
}
check_access()
{
  tmp_dev=`resolve_symlink $device`
  tmp_dev=`basename $tmp_dev | sed 's/[0-9]*$//'`
  sys_dev=/sys/block/$tmp_dev
  if [ $(cat $sys_dev/removable) -eq 0 -a $allow_mount_all -eq 0 ]; then
    echo "Error: you can't mount/umount fixed devices. Only removable (like usb-flash or CD/DVD) is allowed."
    exit 1
  fi
}
do_help_mount()
{
  echo "Use: $0 <device> <mount-point> [mount-ops]"
}
do_help_umount()
{
  echo "Use: $0 <device|mount-point>"
}
do_mount()
{
  if [ -z "$ops" ]; then
    ops=$default_mount_ops
  fi
  check_access
  mount -o $ops $device $point
}
do_umount()
{
  check_access
  umount $device
}
if [ "$name" == "hillman_mount" -a -z "$2" ]; then
  do_help_mount
  exit 1
elif [ "$name" == "hillman_umount" -a -z "$1" ]; then
  do_help_umount
  exit 1
fi
device=$1
point=$2
ops=$3
case $name in
  hillman_mount)
    do_mount
  ;;
  hillman_umount)
    do_umount
  ;;
  *)
    echo "Wrong name: $name"
    exit 1
  ;;
esac
для отмонтирования:
ln -s hillmain_mount hillman_umount
systemd должен умереть.
Во, какая классная штука похоже! Поставлю, потестирую. Мне в KDE нравится, как там сделано: в трее менюшка, ткнул в неё на флешку воткнутую - смонтировалась, ткнул еще раз - размонтировалась. А само оно не монтируется, и это здорово! А эта штукенция похоже как раз аналог, так что потестирую на днях обязательно, спасибо автору!
wilful
Ну я так понимаю, что ты и сам не пользовался?
Как выяснилось, у меня была установлена предпоследняя версия :(
wilful
обнаружил недавно, хочу попросить дать мне шанс!
Только без паники! В том виде, как он есть сейчас, Hillman никуда не денется! Разговор о доделке/улучшении/развитии программы.
wilful
популярности не приобретешь =) Эх был бы программистом, помог бы…
Как раз прграммист как-бы есть… Но чтобы реализовать успешный проект, нужна команда, в которую входят, ну, как минимум, заказчик, дизайнер, программист, тестер, техпис. Иначе что-то в пректе начнёт “проваливаться”. Что мы и наблюдаем с Hillman'ом – фичреквестов нет, баги не обнаружены, документация никакая.
wilful
Я вот надеюсь и жду, когда будет…
Ну вот откуда оно будет? От сырости заведётся? Вот ты мне сейчас сказал, что оно надо, вот я теперь и начну это реализовывать… При условии, что это не противоречит идеологии и вообще реализуемо.
wilful
Пожелания:
Вот это и есть помощь :)
Strafer
а как ловится событие появления нового устройства в системе?
inotifywait на каталоге /dev/block или /dev/disk/by-path

h4tr3d
добавить параметр открыть, причем команду для открытия сделать настраиваемой. а лучше сделать списком, по дефолту - первый пункт, а из меню - все остальное.
Да, как-то так. И кстати, вопрос: как-то можно получить из ОС список имеющихся файл-менеджеров? И ещё: видимо, здесь придётся делать макрос %DIR%, т.к. наверняка разные файл-менеджеры по-разному принимают опцию командной строки “открыть”.

h4tr3d
скрипт для монтирования, правда для вызова нужно переделать малость сам hillman…
h4tr3d, спасибо! Я посмотрю, но попозже, ладно? Отпишусь обязательно.

ProFfeSsoRr
Мне в KDE нравится, как там сделано: в трее менюшка, ткнул в неё на флешку воткнутую - смонтировалась, ткнул еще раз - размонтировалась.
ProFfeSsoRr, а можешь прислать скриншот? Интересно, как это выглядит, а KDE под рукой нет.
OldMan, по поводу файл-манагеров, не мудрствуя лукаво: загнать список, если есть - запустится, нет - выдать окошко с руганью. вместо %DIR% предлагаю %d, по аналогии как в mc :-)

вместо %uid%,просто %u и т.д.

по скрипту посмотри, его и без хилмана можно использовать, прописать в sudo запускаться без пароля, позволит без лишних вопросов монтировать сменные носители. на не сменные будет ругаться, что можно отменить одним параметром (можно вынести в отдельный файл или как-то сопрячь с sys-wide опциями самого hillman).
systemd должен умереть.
Читаю эту тему и аж руки чешутся поставить и попробовать что за зверь ))) (но пока нет возможности)

По поводу ФМ: в /usr/share/applications/mimeinfo.cache нашел строчку
x-directory/normal=nautilus-folder-handler.desktop
У меня Гном, возможно в других ДЕ будет отличаться только название ФМ и это значение можно как-то использовать.

Только что установил pcmanfm, строчка сменилась на такую:
x-directory/normal=pcmanfm-folder-handler.desktop;nautilus-folder-handler.desktop;pcmanfm.desktop;pcmanfm-find.desktop;
OldMan
как-то можно получить из ОС список имеющихся файл-менеджеров?
Я думаю что лучше оставить этот выбор для юзверя (доп. параметром в свойствах раздела), поскольку
1) Множество ФМ
2) Тонкая настройка для каждого раздела
3) Принцип KISS и тем самым меньше возможных ошибок
OldMan
inotifywait на каталоге /dev/block или /dev/disk/by-path
Как просто и это отлично =)
OldMan
Как старый консерватор и противник HAL, DBUS…
Поправьте если не прав, мне это необходимо, что бы понять принцип работы hillman и предположить возможные ошибки: udev создает линки устройств и они подхватываются hillman'ом? Но udev же работает на dbus?
ProFfeSsoRr
Во, какая классная штука похоже!
Действительно стоящая, как бы объединяющая основа для нескольких чудесных, повседневно мной используемых в отдельности программ.
udev не работает по dbus. HAL берет некоторую информацию у udev и отправляет по dbus.
systemd должен умереть.
а с гномом эта вещь будет работать? кто будет монтировать в таком случае: гном (или кто-там сейчас монтирует … udisks) или hillman?

очень не хватает в гноме прозрачных настроек опций монтирования для определенных файловых систем …
 
Зарегистрироваться или войдите чтобы оставить сообщение.