ハラダです。
(2009年06月14日 01:12), HARADA Kazutaka さんは書きました:
> で、これを改善する方法を考えてみているのですが、
> 案1. apt のスロットにスクリプトを仕込んで、install/remove の
> 後に自動的に gtk-update-icon-cache を実行
> 案2. cron で daily でチェックして gtk-update-icon-cache を実行
> 辺りを思いついたものの、もっと良い方法が無いかなと。
とりあえずこんな感じのスクリプトを回そうと考えています。
---<ここから>---
#!/bin/sh
for d in `find /usr/share/icons -maxdepth 1 -type d`; do
if [ ! -e "$d/index.theme" ] ; then
# if cache is not genereted, then create it
/usr/bin/gtk-update-icon-cache --quiet --ignore-theme-index $d
elif [ `find "$d" -type f -newer "$d/index.theme" > /dev/null` ] ; then
# if cache is exist but not up to date, then update it
/usr/bin/gtk-update-icon-cache --quiet --ignore-theme-index $d
fi
done
---<ここまで>---
find で cache ファイルとのタイムスタンプを比較しているので、
最新の状態に cache が更新されていれば、チェック自体は
一瞬で終わりますから、cron で daily で回しても問題無い
レベルだと思います。
# もちろんキャッシュの更新時にはそれなりに処理に掛かります。
後、/usr/share/themes にも同様に cache を作っておくと良い
らしいので、実際のスクリプトではこちらも cache を作るように
しようと考えています。
# もっとエレガントに記述できそうですので、良かったらどなたか
# 改善してやってください。
--
--------------------------------------
Kazutaka HARADA
e-mail:kazutaka@xxxxxxxxxxxxxxxx
--------------------------------------