Как мне изменить цвет моего Terminal.App, когда я вхожу в свой рабочий пульт на Heroku? - PullRequest
13 голосов
/ 18 апреля 2011

Я помню, что была статья, или несколько, о том, как автор меняет цвет терминала с зеленого (для разработки) на красный (для производства) на основе адреса SSH.

Но я не уверен, как повторить это с консолью Heroku.

В идеале, я хотел бы, чтобы оно было синим, когда я делаю heroku console --remote staging, а затем красным, когда я делаю heroku console --remote production.

Любые предложения кто-нибудь?

Ответы [ 4 ]

2 голосов
/ 30 апреля 2011

В любой файл, который загружается как часть производственной среды (скажем, config/environments/production.rb), вы можете поместить:

if defined? IRB
  # whew!
  conf = IRB.conf[:PROMPT][IRB.conf[:PROMPT_MODE]]
  red = "\033[0;31m"
  reset = "\033[0m"
  conf[:PROMPT_S] = "#{red}>> #{reset}" # regular prompt
end

Безумные escape-символы - это цветовые коды ANSI. "\033" является escape-символом, а остальное является кодом для определенного цвета или эффекта. Вы можете найти список других цветов и эффектов здесь . Этот хеш IRB.conf - это глобальный конф для IRB. Вы можете установить несколько других ключей - они задокументированы здесь .

Если вы не используете Rails (и, следовательно, не обязательно имеете файл среды), вы всегда можете проверить текущую среду с помощью ENV['RACK_ENV'], который должен быть установлен на 'production' в Heroku.

1 голос
/ 10 февраля 2017

Я делаю это, используя драгоценный камень Marco Polo https://github.com/arches/marco-polo

Затем вы можете изменить приглашение консоли, установив конфигурационную переменную heroku MARCO_POLO_APP_NAME.Вы можете воспользоваться escape-кодами, чтобы изменить цвет.В моем случае я установил, что производственное приглашение будет белым на пурпурном фоне (трудно пропустить), используя эту последовательность управления для значения MARCO_POLO_APP_NAME

[ESC][105;97;1mPRODUCTION[ESC][0m

К сожалению, переполнение стека не позволит мне опубликоватьСпасайся сам персонаж.Вам нужно будет использовать Notepad ++ и запустить поиск Regexp и заменить его, чтобы заменить [ESC] выше на \ x1B.Затем вы можете скопировать и вставить значение MARCO_POLO_APP_NAME в консоли Heroku.Мне не удалось установить его в командной строке.

0 голосов
/ 05 октября 2011

не проверено, но что-то вроде этого в вашем .bashrc или что-то еще может быть тем, что вы хотите (это не совсем безопасно, но вы должны понять)

function heroku {
  REMOTE_TERMINAL_THEME_NAME="Solarized Light"
  CURTAB=$(osascript -e "tell application \"Terminal\" to get the selected tab of the front window")
  CURTHEME=$(osascript -e "tell application \"Terminal\" to get the name of current settings of the selected tab of the front window")
  HEROKU=$(which heroku)
  osascript -e "tell application \"Terminal\" to set current settings of $CURTAB to settings set \"$REMOTE_TERMINAL_THEME_NAME\""

  $HEROKU "$@"
  osascript -e "tell application \"Terminal\" to set current settings of $CURTAB to settings set  \"$CURTHEME\""
}

Я использую его для ssh, но концептуально то же самое: переопределите вашу команду функцией, которая использует osascript для изменения настроек терминала, а затем верните их обратно при выходе. Переключение на основе аргументов должно быть относительно простым в добавлении.

0 голосов
/ 05 октября 2011

Вы можете автоматизировать это с помощью bash или batch, когда вы набираете его. Псевдонимы, на мой взгляд, являются одной из лучших вещей для создания кли / терминалов.Где-то есть статья, где простая команда echo может изменить ваш цвет, пока вы не установите его обратно с другим echo.

Таким образом, вы можете сделать это с вашим bashrc, если вы пользователь nix.

#pretend this is a bunch of prompt setup
#USER ALIASES
alias heroku-staging="export     PS1="\e[0;34m[Heroku Staging]$]" && heroku console --remote staging"

Тогда просто набери героку-постановку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...