Использование Gentoo `ebegin`, `eend` и т. Д. Под Ubuntu
Нам очень нравится стиль ebegin
, eend
, eerror
, eindent
команды etc, используемые Portage и другими инструментами в Gentoo. Зеленые, желтые и красные маркеры и стандартная компоновка позволяют очень быстро определять ошибки, что в противном случае было бы очень серым выводом командной строки.
#!/bin/sh
source /etc/init.d/functions.sh
ebegin "Copying data"
rsync ....
eend $?
Производить продукцию, похожую на:
* Copying data... [ OK ]
В результате мы используем эти команды в некоторых наших общих сценариях оболочки, что является проблемой для людей, использующих Ubuntu и другие linux. (linuces? linuxen? linucae? другие дистрибутивы)
В Gentoo эти функции предоставляются OpenRC и импортируются вместе с functions.sh
файл (чье точное положение, кажется, немного меняется). Но есть ли простой способ получить эти команды в Ubuntu?
Теоретически мы могли бы заменить их всех на скучные echo
с, но мы бы предпочли нет?
2 ответа
С заданиями sysvinit вы, вероятно, можете просто скопировать эти функции из gentoo в пакет, который вы устанавливаете на свои машины, а затем отправляете исходный код таким же образом. Тем не менее, это не решит проблему для новых рабочих мест.
Существует plymouth<->upstart bridge, который использует dbus для отображения запуска / запуска / остановки / и т.д. для выскочки заданий в Плимуте в структурированной форме (это необходимо для Плимута, так как задания начинаются параллельно). Для цветового кодирования это, вероятно, будет означать исправление плагина деталей Плимута с помощью ncurses и использование вызовов ncurses для изменения цвета.
Я закончил тем, что написал свою собственную имитацию этого: