色つきで結果を表示するrsyncスクリプト
「コンソールで色つきを表示するPEARやその他の方法」d:id:maru_cc:20080218:1203344325 の続き。
せっかく色を付けられるようになったのでなんか作ってみた。
rsyncで結果に色を付けるphpスクリプト。
実行結果はこんな感じ。
削除対処は赤字で、同期対象は緑の文字にしてみました。
ソース
#!/usr/local/bin/php <?php $cmd = 'rsync'; for ($i=1;$i<$argc;$i++) { $cmd.= ' ' . $argv[$i]; } $sync = shell_exec($cmd); $lines = ''; foreach (split("\n", $sync) as $val) { $line = htmlspecialchars($val); if (preg_match('/^(receiving|wrote|total size is|deleting|building|sent) .*/i', $line, $matches)) { switch ($matches[1]) { case "deleting": $lines.= "\033[1;31m"; break; default: $lines.= ""; } } elseif(strlen($line)){ $lines.= "\033[1;32m"; } $lines.= "{$line}\033[0m\n"; } echo $lines;
もっとスマートに出来るはずだけど、とりあえず。
それに、phpが入ってない環境の方が多いから、シェルバッチにしてみようかな。