Beri bash i ebash / Говнокод #19664 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
set +x
for file in ./*.{status,addr2Line,sysctlLog,procLog}
do
    if [ -f "./$file" ]
    then
	    echo -e "\n\n \e[1m### Failure info: \e[34m$file\e[0m\e[1m ###\e[0m"
        cat ./$file | sed -e 's/^host: \(.*\)/host: \x1b[1m\x1b[44m\1\x1b[0m/' \
                          -e 's/^\(.*PANIC:\)/\x1b[1m\x1b[31m\1/' \
                          -e 's/^\(.*Use the following command for more stack info:\)/\x1b[0m\1/'
    fi
done

Почти Malbolge

Запостил: wvxvw wvxvw, (Updated )

Комментарии (18) RSS

  • ну это же искейп последовательности для терминала
    ты что, "termcap & terminfo" не читал?
    Ответить
    • Я как-бы автор этого кода.
      Что как бы не отменяет говнистости. Код какбы предназначается для раскраски логов Дженкинса. Потому что у этой замечательной Ява-программы столько опупенных возможностей красиво отформатировать лог. (Ну можно, конечно плагин написать, но проебаться неделю с плагином, или потратить полчаса на sed - оно того не стоит).
      Ответить
      • Не понимаю причем тут дженкинс
        Ты получаешь от него какой-то лог, красишь слово "PANIC" в красное посредством эск-последовательностей, и эти последовательности тебе не нравятся. Ну это вопрос к DEC, они придумали эти последовательности.

        А если бы это был не ява-программа Дженкнис, а си программа apache, тебе легче было бы чтоли красить лог?

        Вообще скажи спасибо что консоличка в юниксе понимает эск последовательности
        Потому что в винде, например, не понимает
        Нужен Console API
        Ответить
        • Ну вот как бы и не угадал. Красится не слово PANIC, а стектрейс который начинается в строке со словом PANIC, и заканчивается в строке со словами "Use the following ...". Ну и не просто в красный а п/ж красный. Кроме этого слово следующее за host: подсвечивается синим.

          Но без того, чтобы запустить этот код с подходящим вводом понять что именно он делает сложно.

          Дженкинс тут при том, что нужно как-то работать с тем, что он выводит в лог, т.как если сборка или тесты зафейлились, или во время тестов / сборки были какие-то важные сообщения, то их нужно найти, выделить, сделать удобным для людей их читающих навигацию к коду который эти сообщения выдал и т.д. Но при том что Дженкинс - это огромная программа, которая делает очень простую вещь, таких жизненно необходимых вещей в нем нет, и более простой способ их прикрутить - это какая-то возня с ВТ100 кодами, вместо высокоуровневого АПИ.
          Ответить
          • > вместо высокоуровневого АПИ
            Наверняка можно писать логи в каком-нибудь XML, который можно потом раскрасить и отформатировать как угодно XSLT-преобразованием, или просто тупо написать кастомный JUL log-record форматтер.
            Ответить
            • Наверняка: ога, можно, только это работы на месяц, и нет, Женкинс не умеет это просто так, нужно плагин самому писать и т.д. Вообще при поразительно невьебенном объеме кода Женкинс умеет делать очень мало. И даже то, что "умеет" делает через жопу. Одна только отправка сообщений об ошибках в запросах чего стоит.

              grcat немножнко улучшит этот код, но фактически ничего не изменится. Мне не важно, чтобы лог был какого-то определенного цвета. Мне важно, чтобы его можно было найти. Т.е. в идеале, я бы изначально подготовил лог, например, записав в него такую необычную информацию как info/debug/error/warn, а уж женкинс бы это подсветил / спрятал / показал / послал по почте и т.д.
              Ответить
          • Ну так ведь это же юниксовая идеология: все логи в файлах)

            Не нравится тебе возня с кодами? Бери писточник или перл, там можно это превратить в нормальную структуру данных, и раскрасить оттуда же через ncurses

            Сделаешь утилиту, опубликуешь ее на гитхабе, будешь молодец
            Ответить
            • >>Ну так ведь это же юниксовая идеология: все логи в файлах)
              journald только что насрал тебе за шыворот
              Ответить
      • Открой для себя grcat, там реюзабельные конфиги можно писать без всяких эскейп-последовательностей.

        Да и sed-ом можно чуть более читабельно через tput выставлять.
        Ответить
  • а че обратные слеши одинарные в двойных-то кавычках? - сразу в глаза бросается ошибка
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8