VineSeed ML アーカイブ



[VineSeed:17878] Re: 【コメント募集】 gtk icon-theme.cache の更新方法

  • From: HARADA Kazutaka <kazutaka@xxxxxxxxxxxxxxxx>
  • Subject: [VineSeed:17878] Re: 【コメント募集】 gtk icon-theme.cache の更新方法
  • Date: Thu, 18 Jun 2009 22:44:04 +0900
ハラダです。

(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
--------------------------------------