2010年6月15日火曜日

古い port を一気に消し去るスクリプト

MacPorts で port をアップグレードすると古いバージョンを残してインストールされます。でもあまり古いバージョンを残しておきたくない。だけど一気にやるのが面倒だというひとのためのスクリプト。

Ruby で書かれたスクリプトです。アップグレードした後に全ての古いバージョンの port を消し去ります。このスクリプトの使用は自己責任でお願いします。
#!/opt/local/bin/ruby

# アップグレードする必要がなければ以下の2行を削除する
`sudo port -d selfupdate`
`sudo port -d upgrade outdated`

for soft in `port installed`.split "\n"
  s = soft.strip.split /\s+/
  if s.size == 2
    iv = `port installed #{s[0]}`.split "\n"
    if iv.size > 2
      `sudo port -df uninstall #{s[0]} #{s[1]}`
    end
  end
end
コードを見れば分かりますが、あまり Ruby らしくない書き方をしています。"for item in array" を使うより "array.each do |item|" を使った方がいいとか。

0 件のコメント:

コメントを投稿