インストーラ

うおぉぉぉ!全然進まなかった。
結局インストーラはシェルスクリプトで書いているんだが。
とりあえずなんとかなったのをココにバックアップ。

#! /bin/sh

# -r オプションで削除
if test $# = 1; then
    if test $1 = -r; then
        rm -r /usr/share/y901x
        rm /usr/bin/y901x
        rm /usr/share/applications/y901.desktop
        rm /usr/share/pixmaps/y901x.xpm
    fi
else
    # 拡張子があるものだけ /usr/share にコピー
    if ! test -d /usr/share/y901x; then
        mkdir /usr/share/y901x
    fi
    cp -f *.* /usr/share/y901x/

    # /usr/bin に作成
    touch /usr/bin/y901x
    chmod 755 /usr/bin/y901x
    cat << _EOS_ > /usr/bin/y901x
#! /bin/sh
exec python /usr/share/y901x/y901main.py \$@
_EOS_

    # .desktop 作成、MimeType は Totem コピペ
    touch /usr/share/applications/y901.desktop
    cat << _EOSB_ > /usr/share/applications/y901.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Icon[ja_JP]=y901x
Name[ja_JP]=Y901x
Exec=y901x %U
Comment[ja_JP]=わいきゅうまるいちえっくす
Name=Y901x
Comment=y901x
Icon=y901x
StartupNotify=true
Categories=GNOME;GTK;AudioVideo;Video;Player;X-Ximian-Main;X-Red-Hat-Base;
MimeType=application/ogg;application/ram;(以下略
_EOSB_

    # アイコンのコピー
    cp -f y901x.xpm /usr/share/pixmaps/
fi

ヒアドキュメントとやらに詰まりまくった。
MimeType を入れただけでは「別のアプリで開く」でしか登録ができないなぁ。
Nautilus の右メニューに入れるにはどうすれば…まだ勉強が足らない。

それよりやはりカレントディレクトリをスクリプトで変更はやはりまずい。
そうすると glade ファイルの読み込みはどうすればいいんかいなぁ?

try:
    self.widgets = gtk.glade.XML("/usr/share/hoge/a.glade", "b")
except:
    self.widgets = gtk.glade.XML("a.glade", "b")

しか思いつかないし見つからないんだが…まだ勉強が足らない。

てか $@ でコマンドラインオプションを送るとリストで届くんだね。
コマンドラインオプションを付けると解析はどうすれば…まだ勉強が足らない。

アイコンデザインが…いつものことだ。

やりたいこと以外で詰まって全然進展しない!
まぁプログラミングってそういうもんですけどね。
Tips サイトは多いのに何も有効なアプリを公開していない人が多い理由はコレだよ。

追記

手抜きっぽいインストーラ

でなんとかなったぞい!
Nautilus への右メニューへは一度「別のアプリで開く」を行えば登録される。
ということでこの件は終わらせよう、先へ進めない。

UpdateManager のソースがマジで参考になったんだが、コレって Python 製なんだね。
何故こういうトコを強調して日本での Python 普及を唱える人が出ないのやら。
Mono の覚書のほうがアクセスが多いのがオイラは超気に入らないんだよ!