YAMLのBase64記述をデコードする
Publish系のプラグインでは、YAMLにパスワードの記述を要するものが殆どです。
で、それを使うYAMLを周りに人がいる状況で編集したりするのは気が引けますよね。
Plaggerでは、passwordの項目は一度実行すると'base64::'つきで書き換えてくれます。
なのでPRaggerでもそんな感じで、といってもYAMLファイルそのものを書き換えるようにするのは面倒なので(自分の書いた箇所じゃないのであんまり手を加えるのもアレだし)、base64::(base64エンコードされた記述)という形式だったらデコードしてから実行する、とすることを提案します。(エンコードはあらかじめ自分でやっておく、ということで)
pragger.rb
Index: pragger.rb =================================================================== --- pragger.rb (リビジョン 84) +++ pragger.rb (作業コピー) @@ -4,6 +4,7 @@ require 'optparse' require 'kconv' require 'pathname' +require 'base64' $plugins = {} class Plugin @@ -38,4 +39,4 @@ opt.on("-w", "--where") { puts(Pathname.new(__FILE__).parent + "plugin"); exit } opt.parse! -eval_pragger(YAML.load(File.read(configFile).toutf8),[]) +eval_pragger(YAML.load(File.read(configFile).toutf8.gsub(/base64::([\w+\/]+=*)/){ Base64.decode64($1) }),[])
これなら行数は1行追加だけなので大きな影響はありません。
最後の行数がやたら横長になってしまってるのが気になりますが…。