Отсутствие в выводимых командах внешнего пакетного менеджера явного задания локали
Из-за того, что в EEPM используется LC_ALL=C для поиска внешним пакетным менеджером, epm search выводит только английские надписи.
С одной стороны, это предсказуемость и единообразие внутри скрипта.
С другой — создаёт неочевидные тонкости при воспроизведении скопированной команды (результата showcmd() из epm-sh-functions).
С третьей, неясно, что писать в документации — что поиск всегда осуществляется на английском языке, вне зависимости от локали системы, или что это будет настраиваться?
$ #Запуск EEPM:
$ epm search media player | wc
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)"
157 1423 10235
$ #Скопированная строка запуска:
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)" | wc
155 1396 10059
Подробности
Копия сообщения с issue https://github.com/Etersoft/eepm/issues/507.
Попытка подставить внешнюю команду даёт явно разный результат:
$ epm search media player | wc
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)"
157 1423 10235
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)" | wc
155 1396 10059
Происходит из-за принудительно установленной локали "C" на строке https://github.com/Etersoft/eepm/blob/master/bin/epm-search#L132:
https://github.com/Etersoft/eepm/blob/171709517be6b55a3a120a264222df7005891d73/bin/epm-search#L132
В частности, в этом примере убирается строка с легендарным пакетом "mplayer - Media player" (потому что в локали системы его описание звучит как "mplayer - Медиаплейер", что не совпадает с паттерном поиска). Ну и ещё popcorn-time, но в его случае уже ничего сделать нельзя, он устанавливается через epm play.
diff --git a/dev/fd/63 b/dev/fd/62
--- a/dev/fd/63
+++ b/dev/fd/62
@@ -23,3 +23,2 @@ lomiri-mediaplayer-app - Media Player application for Ubuntu Touch devices
mpc-qt - A clone of Media Player Classic reimplemented in Qt.
-mplayer - Media player
musitorius - The system service to control multimedia player
@@ -156,2 +155 @@ i586-vlc-plugin-xml - XML plugin for VLC media player
i586-xplayer-plugin-media-player-keys - Media Player Keys
-popcorn-time - Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player (use 'epm play' to install it)
На Sisyphus таким образом переведено 5508 пакетов, так что есть примерно 5508 строк, где выводы apt-cache или epm могут отличаться. Не уверен, нужно ли с этим что-то делать, но на всякий случай сообщаю.
$ apt-cache search -- "." | grep "[А-Яа-я]" | wc
5508 40003 536293