Использование 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 для изменения цвета.

Я закончил тем, что написал свою собственную имитацию этого:

https://github.com/marcusatbang/efunctions

Другие вопросы по тегам