2009-06-23 64 views
0

好的,好吧,我真的推動了這裏的鞋子的界限,所以我不期待任何奇蹟:有沒有一種方法可以選擇運行鞋子應用程序沒有 gui?沒有Gui選項?

我想這樣做的原因是我創建了一個工具供「非計算機人員」以及「計算機人員」使用,他們寧願將程序作爲命令行工具運行,甚至可能在沒有安裝X/gtk的系統上。 (我作爲一個多學科的研究工作,和鞋子專注於工具,整天不與GUI設計擺弄是巨大的。)

下面是一些示例代碼:

if(ARGV[1] == "nogui") 
    puts "running computation on #{ARGV[2]}"; 
    exit(); 
end 

Shoes.app(:width => 200, :height => 100) do 
    @button = button("Quit").click() { 
    exit(); 
    } 
end 

除了我得到一個

其中工程
Gtk-CRITICAL **: gtk_main_quit: assertion `main_loops != NULL' failed 

錯誤。

回答

1

我還沒有嘗試過,但我不知道那些鞋甚至會開心地在沒有X的系統上啓動。您可能最好創建一個shell腳本來選擇啓動哪個版本。事情是這樣的:

#!/usr/bin/sh 
NOGUI=0 
if [ $# -gt 0 ]; then 
    NOGUI=$1 
fi 
if [ $NOGUI = nogui ]; then 
    shift 
    echo "Running in command-line mode..." 
    ruby command-line.rb "[email protected]" 
else 
    echo "Starting Shoes..." 
    shoes shoes.rb "[email protected]" 
fi 

如果第一個參數是nogui,其餘的參數發送到Ruby的版本,否則所有參數(包括第一)被髮送到鞋。

現在你只需要分離實際的性能邏輯,以便它可以導入到兩個版本。

+0

是的,這總是一個選擇,但是我沒有包裝鞋的所有細節。 Ruby,以及我的程序依賴的寶石將是安裝要求。我看過rubyscript2exe,但我希望鞋子可以做得更好(我希望不必處理多個包裝解決方案;-)) 我想這不是很難要求X和gtk庫,只要鞋子的應用程序沒有嘗試並彈出一個窗口;即只要它不窒息一個SSH連接,我會很高興。 – shawn 2009-06-23 19:04:07