The Diary of Aska

Dropbox API Command プログレスバー対応

Dropbox API Command は以下で公開しています。

先日の大容量ファイル対応に引き続き、プログレスバー表示の要望にも対応しました。

$ dropbox-api sync /tmp/hoge/ dropbox:/tmp/ -vd
remote_base: /tmp/
local_base: /private/tmp/hoge
** upload **
upload 1GB.dat /tmp/1GB.dat
100% [=====================================================================================>]
upload bar.txt /tmp/bar.txt
upload foo.txt /tmp/foo.txt
** delete **

プログレスバー表示

Perlの場合、大人しくTerm::ProgressBarを使うのが吉です、しかしターミナルの幅さえ取れれば自分で出力できるで今回は簡易にターミナルの幅を取る方法を探してみました。

my $cols = 50;
my $stty = `stty -a`;
if ($stty =~ m|columns (\d+)| || $stty =~ m|(\d+) columns|) {
    $cols = $1;
}

sttyコマンドがあればそこから画面の幅を取ります、取得できるプラットフォームは限られますが。