Wine で msi ファイルを開く時は…
$ wine msiexec /i hoge.msi
な感じで実行するんですが、bin/msiexec
なんてものを発見。これもしかして単体で実行できるんじゃないの?って調べてみたら出来るっぽい。
msiexec - The Official Wine Wiki
というわけで起動スクリプトを書き換えてみた。MacPorts のライブラリを使っている自前の Wine なので PATH
とかはちょっと異なります。
#!/bin/bash export PATH=/usr/local/wine/bin:$PATH export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib for x in "$@" do case ${x} in *.msi|*.MSI) exec msiexec /i "$@";; esac done exec wine "$@"
引数を順番に調べて *.msi
か *.MSI
にマッチするものがあれば msiexec /i
で実行する。exec
で実行するのでそれ以降のコマンドは無視。なんとなく気分的に case
コマンドをマッチングに使ってみた。
とりあえずこれで…
$ wine foo.msi
だけで msi ファイルを直接実行できるようになりました。