Вы у своего терминала, печатаете, занимаетесь своими делами — возможно, вы находитесь в vim. Вы сохраняете файл и выходите из :wq . Вы запускаете свою программу — она опять не сработала. Или, может быть, вы используете приложение командной строки, которым раньше не пользовались, и неправильно задали другой параметр — оно не сработало. Снова.

Я не знаю, сталкиваетесь ли вы с такими вещами постоянно, как я, но у меня бывает много подходящих ситуаций, когда мне нужен флип-стол просто для того, чтобы правильно выразить свои эмоции: [ ╯ ' □']╯︵ ┻━┻ )

Долгое время я просто хотел, чтобы в моей командной строке было больше переворачивающихся таблиц. Я предполагал, что навсегда останусь рабом google'n своих перекидных столов, когда они мне понадобятся.

Но однажды я узнал кое-что. Эти конкретные вещи — ну, я полагаю, вещь — но в любом случае: я узнал о $PROMPT_COMMAND в bash. Эта переменная замечательна — и на самом деле, на мой взгляд, чрезвычайно эффективна как средство для выражения в командной строке, будучи очень простой переменной, которая просто выполняется как команда перед печатью основного приглашения, $PS1. Это его основная функциональность.

Несмотря на простоту, в нем было много интересных возможностей для забавных вещей. В то время как большинство людей заинтересованы в настройке своей оболочки bash с помощью крутых $PS1 хаков, у меня открылся новый путь, чтобы иметь возможность делать все, о чем я мог мечтать. Потому что, видите ли, $PS1 не очень приятно — ну…

Это замечательно и имеет множество функций, которыми я раньше пользовался. Но он потерял меня в тот момент, когда начал драться со мной, передавая свой вывод в лолкэт. Я хотел радуги.

Из-за этого, например, я не мог легко реализовать радугу для своего $PS1! Я хотела радуги! Нет. Они мне нужны. И это долгое время было для меня настоящей пародией.

Да, я знаю, что делать это с вашим $PS1 не особенно практично и даже не очень функционально. Но, черт возьми, это круто выглядит, когда работает! Когда я узнал о $PROMPT_COMMAND, у меня наконец-то появилось то, что сработало!

Долгое время я устанавливал эту маленькую волшебную функцию под названием Flip_Table :

Эта функция выполняла одну простую проверку, чтобы определить, оправдана ли переворачиваемая таблица; и это было сделано путем проверки статуса выхода предыдущей команды, чтобы проверить, не равен ли он нулю.

Ненулевой статус выхода обычно означает, по большей части, что что-то пошло не так. Статус выхода, равный нулю, должен — но не всегда, потому что программисты — обычно должен быть хорошим и не гарантирует реакцию переворачивающегося стола.

В противном случае, когда эта функция не переворачивает таблицы, она отображает своего рода псевдо $PS1, который создается с помощью небольшой эхо-строки, переданной в лолкэт. Результат довольно элегантный:

Постепенно моя жажда моих флип-столов начала расти — практически неконтролируемая. Я думал, что одного перекидного стола просто недостаточно. Просто. Мне нужно было пойти дальше. Сложно. Но просто.

Итак, я пошел работать над созданием рубинового драгоценного камня, чтобы сделать именно это.

В результате — я не устану от этого — есть приложения командной строки, которые не только поддерживают переворачиваемые таблицы, но и поддерживают таблицы ввода! Двойной удар!

Кроме того, его можно настроить с помощью простых файлов конфигурации YAML; и обеспечивает радужную поддержку из коробки. Правда, без коробки, как ни странно. Итак, мне больше не нужно передавать свои флип-таблицы в лолкот. Я могу просто вызвать свое приложение командной строки, чтобы все обработать за меня. Помимо этих вещей, в нем по умолчанию есть несколько крутых таблиц переворота/пути, чтобы держать вещи свежими, когда что-то пойдет не так. И они делают.

Установка

Установить flipr очень просто, если у вас установлен ruby, так как это гем:

$ (sudo) gem install flipr

Начните Flip’n Flipping с Flipr!

После установки flipr у вас должен быть доступ к команде flipr, которая по умолчанию должна открывать меню справки без каких-либо флагов:

$ flipr

Теперь мы можем получить переворачиваемые таблицы с опцией -f :

$ flipr -f 

И наоборот, поместите таблицы с опцией -p :

Поскольку у меня есть запеченная опция -l для радуги, теперь я могу изменить $PROMPT_COMMAND , о котором мы говорили ранее, чтобы она выглядела следующим образом:

Это делает флип-таблицы гораздо более захватывающими из командной строки!

Резюме

Мне очень понравилось работать над этим проектом. Первоначально флипр не был жемчужиной, но я рад, что теперь он им стал; и это один из моих любимых проектов на сегодняшний день, если честно. Вы можете найти код на GitHub. Надеюсь, вы найдете это маленькое приложение столь же полезным, как и я, или, по крайней мере, сможете найти другие полезные/забавные вещи, которые можно сделать с помощью the$PROMPT_COMMAND