[Devel] [JT] apt, python (was: Re: Насчет гуевой устанавливалки RPM)
Dmitriy M. Maslennikov
=?iso-8859-1?q?maslennikovdm_=CE=C1_gmail=2Ecom?=
Пн Мар 2 19:05:33 MSK 2009
27 февраля 2009 г. 21:42 пользователь <vpashka на gmail.com> написал:
> А вот такой вопрос к проффесионалам.
> Возможно ли для такой задачи просто парсить консольный вывод apt?
> (там тебе и проценты и т.п. и вроде вообще не надо,
> в apt влезать. А если смотреть шире, то можно
> и для других систем подобный подход применить).
Подход очень плох, поскольку неустойчив к изменению вывода. Когда
даются библиотеки, то их интерфейс декларируется, лишний раз его
стараются не менять, причем интерфейс в основном расширяют, а то что
собираются убирать заранее определяют как depricated (не все так
радужно, но все же). А вот чуть-чуть улучшить вывод программы,
заменить фразу на более удачную, сделать более наглядным прогресс-бар
- для утилит, не рассчитанных для использования в шелл-скриптах, это
делают просто так вдруг и при этом могут все сломать. Причем не
предсказуемым для автора парсера образом. Кроме того даже сам вопрос
получения всевозможных вариантов вывода сложной утилиты не решаем без
ручного проглядывания исходников.
Кроме того, для большого числа утилит с богатыми интерактивными
возможностями придется эмулировать терминал, так как они, во-первых,
могут осуществлять проверку на это (что не является проблемой),
во-вторых, могут использовать специфические последовательности (что
проблема уже большая).
В целом, такой подход очень ущербен, для всех утилит, которые не
рассчитаны на такую работу специально (есть те, которые как раз на
такое рассчитаны, в этом случае это особо декларируется и весь их
"интерфейс" при этом детально описывается). Так работают backend в
alterator, или, так GUI в Mathematica работает с Mathematica-kernel.
--
Dmitriy M. Maslennikov
rlz на etersoft.ru
rlz на altlinux.org
maslennikovdm на gmail.com
master на armory.ru
Подробная информация о списке рассылки devel