2011-04-18 45 views
13

Tôi nhớ có một bài báo, hoặc một vài bài viết về cách tác giả thay đổi màu của thiết bị đầu cuối từ màu xanh (để phát triển) sang màu đỏ (để sản xuất) dựa trên địa chỉ SSH.Làm cách nào để thay đổi màu của Terminal.App khi tôi đăng nhập vào remote sản xuất trên Heroku?

Nhưng tôi không chắc chắn cách sao chép bằng bảng điều khiển Heroku.

Lý tưởng nhất, tôi muốn màu xanh dương, khi tôi làm heroku console --remote staging và sau đó là màu đỏ, khi tôi làm heroku console --remote production.

Mọi đề xuất bất kỳ ai?

+0

Heroku có đặt bất kỳ thứ gì (giống như env var) khi làm việc từ xa như vậy không?(/ Tôi không biết gì về Heroku) –

+0

Có, tôi đoán nó có thể được thực hiện thông qua ENV VAR. Suy nghĩ? – marcamillion

Trả lời

2

Trong bất kỳ tập tin đó được nạp như một phần của môi trường sản xuất (ví dụ, config/environments/production.rb), bạn có thể đặt:

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 

Các nhân vật thoát điên là ANSI mã màu. "\033" là ký tự thoát và phần còn lại là mã cho một màu hoặc hiệu ứng cụ thể. Bạn có thể tìm danh sách các màu sắc và hiệu ứng khác here. Rằng IRB.conf băm là một conf toàn cầu cho IRB. Bạn có thể muốn đặt một vài phím khác trên đó - chúng được ghi lại là here.

Nếu bạn không sử dụng Rails (và do đó không nhất thiết phải có tệp môi trường), bạn luôn có thể kiểm tra môi trường hiện tại bằng cách sử dụng ENV['RACK_ENV'], sẽ được đặt thành 'production' trên Heroku.

+0

Khi tôi thử điều này, tôi nhận được thông báo này: ''block in ': undefined method '[]' cho nil: NilClass (NoMethodError)' tại dòng này: 'conf = IRB.conf [: PROMPT ] [IRB.conf [: PROMPT_MODE]] 'Suy nghĩ? – marcamillion

+0

Ồ, thật lạ lùng, chúng dường như không sử dụng IRB, mà là một khách hàng homebrewed dường như gửi mã ruby ​​qua REST. Tôi sẽ xem xét và xem những gì có thể, nếu có. –

+0

Mọi cập nhật thêm cho Jay này? – marcamillion

-1

Bạn có thể tự động hóa bằng bash hoặc lô khi bạn nhập bí danh theo ý kiến ​​của tôi một trong những điều tốt nhất cho việc thiết lập đầu cuối/đầu cuối. Có một bài viết ở đâu đó, nơi một lệnh echo đơn giản có thể thay đổi màu sắc của bạn cho đến khi bạn thiết lập nó trở lại với một echo.

Vì vậy, bạn có thể làm điều này với bashrc của bạn nếu người dùng nix của bạn.

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

Sau đó, chỉ cần gõ Heroku-dàn dựng

+0

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

0

chưa được kiểm tra, nhưng một cái gì đó dọc theo dòng này trong .bashrc của bạn hoặc bất cứ điều gì có thể là những gì bạn muốn (nó không phải là tuyệt đối an toàn nhưng bạn sẽ nhận được các ý tưởng)

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\"" 
} 

Tôi sử dụng nó cho ssh nhưng khái niệm này giống nhau: ghi đè lệnh của bạn bằng hàm osascript để thay đổi cài đặt đầu cuối, sau đó thay đổi lại khi thoát. Chuyển đổi dựa trên các đối số nên tương đối dễ dàng để thêm.

0

Tôi làm điều này bằng cách sử dụng Marco Polo đá quý https://github.com/arches/marco-polo

Sau đó bạn có thể thay đổi giao diện điều khiển cửa sổ của bạn bằng cách thiết lập cấu hình Heroku biến MARCO_POLO_APP_NAME. Bạn có thể tận dụng các mã thoát để thay đổi màu sắc. Trong trường hợp của tôi, tôi đặt dấu nhắc sản xuất để có màu trắng trên nền đỏ tươi (khó có thể bỏ lỡ) sử dụng chuỗi kiểm soát này cho giá trị của MARCO_POLO_APP_NAME

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

Thật không may, Stack Overflow sẽ không cho phép tôi gửi các ký tự thoát chinh no. Bạn sẽ phải sử dụng Notepad ++ và chạy một tìm kiếm Regexp và thay thế để thay thế [ESC] ở trên bằng \ x1B. Sau đó, bạn có thể sao chép và dán vào giá trị của MARCO_POLO_APP_NAME trong bảng điều khiển Heroku. Tôi không thể đặt nó ở dòng lệnh.

Các vấn đề liên quan