2011-04-18 24 views
13

Ricordo che c'era un articolo, o pochi, in cui l'autore cambia il colore del terminale dal verde (per lo sviluppo) al rosso (per la produzione) in base all'indirizzo SSH.Come cambio il colore del mio Terminal.App quando accedo al mio telecomando di produzione su Heroku?

Ma non sono sicuro di come replicarlo con la console di Heroku.

Idealmente, mi piacerebbe che fosse blu, quando faccio heroku console --remote staging e poi rosso, quando faccio heroku console --remote production.

Qualche suggerimento qualcuno?

+0

Heroku imposta qualcosa (come un env var) quando lavora in remoto in quel modo?(/ io non so nulla di Heroku) –

+0

Sì, immagino che potrebbe essere fatto tramite VAR ENV. Pensieri ? – marcamillion

risposta

2

In ogni file che viene caricato come parte dell'ambiente di produzione (ad esempio, config/environments/production.rb), è possibile inserire:

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 

I caratteri di escape folli sono i codici colore ANSI. "\033" è un carattere di escape e il resto è un codice per un particolare colore o effetto. È possibile trovare un elenco di altri colori ed effetti here. L'hash IRB.conf è un conf globale per IRB. Potresti voler impostare qualche altro tasto su di esso - sono documentati here.

Se non si utilizza Rails (e quindi non si dispone necessariamente di un file di ambiente), è sempre possibile controllare l'ambiente corrente utilizzando ENV['RACK_ENV'], che dovrebbe essere impostato su 'production' su Heroku.

+0

Quando provo questo, ottengo questo messaggio: ''block in ': metodo undefined '[]' per nil: NilClass (NoMethodError)' a questa riga: 'conf = IRB.conf [: PROMPT ] [IRB.conf [: PROMPT_MODE]] 'Pensieri? – marcamillion

+0

Oh, è bizzarro, non sembrano usare IRB, ma piuttosto un client homebrewed che sembra inviare codice ruby ​​su REST. Dare un'occhiata e vedere cosa è possibile, semmai. –

+0

Qualche ulteriore aggiornamento a questo Jay? – marcamillion

-1

È possibile automatizzarlo con bash o batch quando si digita gli alias sono a mio parere una delle cose migliori per il cli/terminal devving. C'è un articolo da qualche parte dove un semplice comando echo può cambiare il colore fino a quando non lo si imposta con un altro eco.

Così puoi farlo con la tua bascrc se sei un utente 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" 

Poi basta digitare Heroku-staging

+0

http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ – Aquertu

0

non testato, ma qualcosa lungo le linee di questo nel vostro .bashrc o qualsiasi altra cosa può essere ciò che si vuole (non è completamente sicuro, ma si dovrebbe ottenere l'idea)

Io lo uso per ssh ma è concettualmente lo stesso: sostituisci il comando con una funzione che utilizza osascript per modificare le impostazioni del terminale, quindi modificale nuovamente all'uscita. Il passaggio basato su argomenti dovrebbe essere relativamente facile da aggiungere.

0

Lo faccio utilizzando la gemma Marco Polo https://github.com/arches/marco-polo

È quindi possibile modificare il prompt della console impostando il Heroku config MARCO_POLO_APP_NAME variabile. Puoi sfruttare i codici di escape per cambiare il colore. Nel mio caso, ho impostato la richiesta di produzione di essere bianco su fondo rosso magenta (difficile da perdere) utilizzando questa sequenza di controllo per il valore di MARCO_POLO_APP_NAME

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

Purtroppo, Stack Overflow non mi permette di postare il carattere di escape si. Dovrai usare Notepad ++ ed eseguire una ricerca Regexp e sostituirla per sostituire [ESC] sopra con \ x1B. Quindi puoi copiare e incollare il valore di MARCO_POLO_APP_NAME nella console di Heroku. Non sono riuscito a impostarlo sulla riga di comando.

Problemi correlati