Как изменить цвет моего терминала .App, когда я вхожу на мой пульт управления на Heroku?
Я помню, что была статья или несколько статей о том, как автор меняет цвет терминала с зеленого (для разработки) на красный (для производства) на основе SSH-адреса.
Но я не уверен, как копировать это с помощью консоли Heroku.
В идеале я хотел бы, чтобы он был синим, когда я делаю heroku console --remote staging
, а затем красным, когда я делаю heroku console --remote production
.
Любые предложения кто-нибудь?
Ответы
Ответ 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"
Затем просто введите герой-постановку