MacOSXでシェルスクリプトを.app形式のアプリケーションにするmkapp.app

提供:maruko2 Note.
移動: 案内, 検索
shell2app.png

Mac OS X でシェルスクリプトを実行するには、ターミナルでシェルスクリプトを実行したり、シェルスクリプトのファイル名を.command という拡張子にして実行権限を付けると、ダブルクリックするだけで自動でターミナルが起動しスクリプトを実行する、などのような方法がある。

いずれにしてもターミナルを使う事になるが、Mac OS X の .app 形式にすることでターミナルを使う事なくシェルスクリプトを実行させることができるようになる。

Mac OS X は、次のような構成でディレクトリとファイルを配置すると、アプリケーションパッケージになる。

Application.app/
`-- Contents
    |-- Info.plist
    |-- MacOS
    |   `-- script.sh
    `-- Resources
<string>script.sh</string> の部分に、実行させたいシェルスクリプトのファイル名を記述する。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleExecutable</key>
    <string>script.sh</string>
  </dict>
</plist>

これらディレクトリ作成などをスクリプトにしたものが mkapp.sh。

ダウンロード mkapp.sh
#!/bin/sh
 
SHELLSCRIPT="script.sh"
 
mkdir -p Application.app/Contents/{MacOS,Resources}
 
cat > Application.app/Contents/Info.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleExecutable</key>
    <string>${SHELLSCRIPT}</string>
  </dict>
</plist>
EOF
 
cp ${SHELLSCRIPT} Application.app/Contents/MacOS/
 
chmod +x Application.app/Contents/MacOS/${SHELLSCRIPT}

この mkapp.sh を元にしてつくったのが、mkapp.app

ダウンロード mkapp.app.zip

mkapp.app の使い方

  1. mkapp.app と同じ階層に、実行させたいシェルスクリプトファイルを script.sh という名前で配置する。
  2. mkapp.app をダブルクリック!
  3. 同じ階層に Application.app ができる。

参考ページ

シェルスクリプトとかの CUI アプリケーションを Mac OS X 方式の .app にする方法 [簡単 5 ステップ]
http://www.pqrs.org/tekezo/macosx/doc/makeapp/
Cocoaアプリケーションチュートリアル: Info.plistファイル
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjCTutorial/08Configuring/chapter_8_section_2.html#//apple_ref/doc/uid/TP40000863-CH10-SW2
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数