trash-cliのtrash-emptyが引数の日数を認識してくれないバグ

trash-cliってCLIからゴミ箱を操作できるツールがあります。
で、そのツールの一つであるtrash-emptyは
引数なしで呼びだすとゴミ箱の中の全てのファイルを削除するプログラムです。

$ trash-empty 30

このように引数ありで呼びだすと、
引数の日数よりも古いファイルのみ削除してくれる。
つまりこの場合30日以上経っているファイルのみ削除するわけです。


しかしリポジトリの最新リビジョンであるr316現在
この引数がまったく無視されてしまいます。


で、ずっとタイムスタンプの問題かなとかいろいろ悩んでたんですが
今日になって以下のURLを見つけてバグとわかりましたので今こうしてエントリ書いてるわけです。ちくしょう...

Comment by: iamcraig on Mon, 06 Dec 2010 10:23:36 +0000

trash-empty 'days' option is ignored. Everything always gets removed from Trash regardless of its deletion time. Look in cli/empty.py and you'll see:

days=0
if len(args) > 1 :
parser.print_usage()
parser.exit()
elif len(args) > 1 :
try :
days=int(args[1])

The elif condtition should be 'len(args) == 1' (or 'len(args) > 0'). Upstream has been notified.

AUR (en) - trash-cli

Comment by: iamcraig on Mon, 06 Dec 2010 10:36:09 +0000

and 'days=int(args[1])' should be 'days=int(args[0])'

AUR (en) - trash-cli

iamcraig++
というわけでiamcraigさんの言う通り次のように修正すると無事このバグは直りました。

(ちなみにこのパッチの「sys.exit(1)」のとこは自分が勝手に入れたやつです。
一回数値でない引数渡したら、このexceptのとこに入って
usage表示してるにもかかわらず全部ファイル削除してくれちゃったので)

なんでまだ修正されてないの?

不思議なのはこれ「修正したよ(Done, thanks.)」ってコミッタらしき人*1
今月の7日に言ってるのに、未だにリポジトリに修正が入ってないこと。
もしかしてこのリポジトリ本家じゃなくミラーだったりするのかな...あとで気力あったら調べる。

*1:っていうかMaintainerのとこに名前あるな