2012-02-29 50 views
3

如何檢測是否使用rake指定了--quiet選項。如何檢測--quiet選項是否用rake指定

意圖是基於類別過濾自定義消息。

class Category 
    INFO = 1 
    WARNING = 2 
    ERROR = 3 
end 

@trace = true 

task :silent do 
    @trace = false 
end 

def trace(msg, category=Category::INFO) 
    return if (@trace == nil) 
    return if ((@trace == false) && (category == Category::INFO)) 
    puts msg 
end 

在這種情況下,如果指定了--quiet選項,我想再添加一個案例來過濾trace。

回答

6

Rake.verbose提供選項,以檢查是否指定--quiet模式

下面這個簡單的耙文件中像生產這樣 $耙輸出--quiet 假

$耙默認

task :default do 
    puts Rake.verbose 
end 

也可以使用Rake.verbose覆蓋rakefile中的設置(true |假)

+0

我有一個'私有方法「冗長」呼籲耙:Module'錯誤 – fguillen 2012-05-11 13:46:43

+2

貌似正確的方法是做到像這個:'Rake.application.options.verbose' – fguillen 2012-05-11 13:52:11

+2

還有'Rake.application.options.silent'和'Rake.application.options.quiet'分別對應'--silent'和'--quiet'。 – Dimitar 2012-08-17 09:38:20

1

看起來你至少可以在rake-10.0.4中調用方法verbose

與任務:

task :default do 
    puts verbose 
end 

我得到:

$ rake --silent 
false 
$ rake --quiet 
false 
$ rake --verbose 
true 
相關問題