2012-02-29 13 views
3

rakeで--quietオプションが指定されているかどうかを検出する方法。rakeで--quietオプションが指定されているかどうかを検出する方法

カテゴリに基づいてカスタムメッセージをフィルタリングすることを意図しています。この場合

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オプションが指定されている場合は、トレースをフィルタリングするために1より多くのケースを追加したいと思います。

答えて

6

Rake.verboseは 偽

$すくいデフォルト

を--quietこの $レーキのような出力を生成のようなシンプルなすくいファイルに続き--quietモードが

指定されているかどうかを確認するためのオプションを提供します

task :default do 
    puts Rake.verbose 
end 

Rake.verbose(true | false)を使用してrakefile内の設定を上書きすることもできます。 false)

+0

私は熊手を呼びかけ 'プライベートメソッド 'verbose' を持っている: – fguillen

+2

は、適切な方法のように見えるmodule'のエラーは次のようにそれを行うですこれは: 'Rake.application.options.verbose' – fguillen

+2

' --silent'と '--quiet'にそれぞれ対応する' Rake.application.options.silent'と 'Rake.application.options.quiet'もあります。 – Dimitar

1

少なくとも、rake-10.0.4でメソッドverboseを呼び出すことができるようです。タスクに

task :default do 
    puts verbose 
end 

私が取得:

$ rake --silent 
false 
$ rake --quiet 
false 
$ rake --verbose 
true 
関連する問題