May 4th, 2006

404

command-line interface cd/dvd burning...

Родилась идея командного интерфейса для прожига дисков.

Для начала о существующих подходах:

1) mkisofs предполагает создание образа диска перед его прожигом. Главный недостаток этого метода - необходимость создавать список файлов, особенно при раскиданных в разных местах файлах. Второй недостаток - необходимость сначала создавать образ, а потом его прожигать, компенсируется использованием пайпов.

2) nero-like shell. Две панельки, копируем файлы, задаём в диалоге свойства, жгём. Главный недостаток - явная гуи-привязанность, мыша must have. Ну и некоторая негибгость и неудобство в просмотре файлового дерева (лично мне explorer file tree не кажется удобным).

Я бы хотел предложить третий метод: cvs-like.

Суть: у программы (пусть это будет набор команд cdadd, cddel, cdburn, cdlist, cdnew) есть интерфейс:

  1. создать композицию (cdnew "label" [CD OPTIONS])
  2. добавить файл, каталог с содержимым и т.д. в композицию (cdadd file, file... [OPTIONS]), включая возможность добавить файл в композицию под другим именем, создать новый каталог в композиции и т.д.
  3. удалить файл из композиции (директорию и т.д.)
  4. просмотреть текущую композицию (выводится список файлов, информация о настройках прожига, использованное/свободное место и т.д.)
  5. Записать композицию на заданное устройство. При этом в зависимости от настроек/опций в конфиге можно сделать "автообнуление" композиции после прожига (то, что меня бесит в неро больше всего - это вопрос о сохранении композиции перед закрытием после прожига).


Итог. Заходим в директорию. Говорим cdadd -n -r * && cdburn -l"Disc with label", (-n - новая композиция, -r - рекурсия).

Для нескольких файлах в разных каталогах это будет несколько add. и burn.

Фактически, получаем аналог виндовой прожигалки, но с командным интерфейсом и полным набором фич (за счёт командной строки).

Наверное, можно реализовать хранение композиции как набор симлинков, в этом случае всё ещё проще будет.