他の人のcfgと比較してcvarの設定の違いをキレイに見れるやつ作った。
概要
これは自分のcfgファイルと誰かのcfgファイルを指定すると、設定が違うcvarだけ表示できるというもの。2つのautoexec.cfgのパスを指定するとそれぞれ内部でexecしてるcfgを自動で探して読み込んで、その上で違いを表示してくれる。TF2向けに作ったけどたぶんL4D2でもdota2でも使える。
コード
ただしまだRubyで適当に作っただけ。WEBサービス化はするモチベーションあったらするみたいな感じで。
https://gist.github.com/3986233
使い方と利用例
まず自分のcfgと誰かのcfgを比較してみる
$ ruby ./cfg_diff.rb ./cfg1/autoexec.cfg ./hudcfg/cfg/autoexec.cfg Only exist in b: sv_cheats = '0' Diff: fps_max: a = '120', b = '132' Diff: r_decals: a = '200', b = '100' Diff: mat_shadowstate: a = '0', b = '1' Diff: r_shadowmaxrendered: a = '0', b = '11' Diff: r_shadowrendertotexture: a = '0', b = '1' Diff: r_shadows: a = '0', b = '1' Only exist in b: blink_duration = '0' Diff: r_eyes: a = '0', b = '1' Only exist in b: flex_rules = '0' Only exist in b: flex_smooth = '0' .. (省略)
大量に出力された。
- Only exist in aてのは左側に指定したautoexec.cfgのみに存在するcvar。
- 先ほど述べたようにautoexec.cfgからexecされているcfgに含まれているcvarも内部的に調査してくれている。
- Diffってのはどちらのautoexec.cfgにも記載してあって、値が違うもの
というわけでgrepコマンドを使って2人のcfgのうち、値だけが違うものを抽出するにはこんなかんじで
$ ruby ./cfg_diff.rb ./cfg1/autoexec.cfg ./hudcfg/cfg/autoexec.cfg | egrep '^Diff' Diff: fps_max: a = '120', b = '132' Diff: r_decals: a = '200', b = '100' Diff: mat_shadowstate: a = '0', b = '1' Diff: r_shadowmaxrendered: a = '0', b = '11' Diff: r_shadowrendertotexture: a = '0', b = '1' Diff: r_shadows: a = '0', b = '1' Diff: r_eyes: a = '0', b = '1' ... (省略)
これを見れば分かる通り、
- fps_maxが左側は120だが、右側は132と指定しており相違している
- mat_shadowstateが左側は200だが、左側は100と指定しており相違している