Назад | Перейти на главную страницу

Использование Gentoo ebegin, eend и т. Д. Под Ubuntu

Нам очень нравится стиль ebegin, eend, eerror, eindent и т.д., используемые 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?

Теоретически мы могли бы заменить их все тупыми echos, но мы бы не хотели?

В итоге я написал свою собственную имитацию:

https://github.com/marcusatbang/efunctions

С заданиями sysvinit вы, вероятно, можете просто скопировать эти функции из gentoo в пакет, который вы устанавливаете на свои машины, а затем таким же образом исходите. Однако это не решит проблему для новичков.

Существует мост plymouth <-> upstart, который использует dbus для отображения запуска / запуска / остановки / и т. Д. для выскочки вакансий в Плимуте в структурированном виде (необходимо для этого в Плимуте, поскольку рабочие места начинаются параллельно). Для цветового кодирования это, вероятно, означало бы исправление плагина сведений о plymouth с помощью ncurses и использование вызовов ncurses для изменения цвета.