Подтвердить что ты не робот

Как изменить цвет моего терминала .App, когда я вхожу на мой пульт управления на Heroku?

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

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

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

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

4b9b3361

Ответ 1

В любом файле, который загружается как часть производственной среды (например, 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.

Ответ 2

untested, но что-то вроде этого в вашем .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 "[email protected]"
  osascript -e "tell application \"Terminal\" to set current settings of $CURTAB to settings set  \"$CURTHEME\""
}

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

Ответ 3

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

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

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

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

Ответ 4

Вы можете автоматизировать его с помощью bash или партии при вводе его псевдонимов, на мой взгляд, одной из лучших вещей для создания cli/terminal. Theres где-то где простая команда 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"

Затем просто введите герой-постановку