きりかノート 3冊め

おあそびプログラミング

Mac App Store用のコマンドラインツール mas を登録

コマンドラインMac App Store経由のインストール、更新などの操作ができる mas (mas-cli) というツールがある。

使い方はREADMEに書かれてる用例を見ればほとんどわかると思う。

   $ mas list                  #インストールしているストアアプリの一覧を出力
   $ mas search app-name       #ストア上のアプリを名前で検索
   $ mas install app-id-number #ストアアプリをインストール
   $ mas outdated              #更新されているアプリを表示
   $ mas upgrade               #更新されているアプリを最新にする
      :

有償のアプリを購入することはさすがにできないみたい。

個人的にはちょっと前から使っていたのだけど、アプリケーションの指定時に謎の数字(ストア上のURLに含まれるもの)で指示するところとかがどうかなー?と思って公式のリポジトリには登録してなかった。

最近読んだいくつかのMacの環境構築記事で、新しい環境にストアアプリを入れるのに使うということが書かれてて、そういうユースケースならあらかじめ数字わかってるし問題ないと納得したので公式のport登録することにした。

リポジトリ入れてbuildbotの結果ながめるまで気付かなかったのだけど、最新版はswift3で書かれてるからXcode 8以上がいるんだね。OS X 10.11上でも使えてたからあまり意識してなかった。

ということでPortfileに制限の記載を追加。

   # requires swift3
   minimum_xcodeversions {15 8}
   pre-fetch {
       if {${os.major} < 15} {
           ui_error "${name} @${version} requires OS X 10.11 or later."
           return -code error "incompatible OS X version"
       }
   }

これで、Xcode 7.xな環境だとちゃんとバージョンが足りてない旨のメッセージが出るようになる。

   --->  Extracting mas
   Error: On macOS 10.11, mas @1.3.1 requires Xcode 8 or later but you have Xcode 7.3.
   Error: See https://guide.macports.org/chunked/installing.xcode.html for download links.
   Error: org.macports.extract for port mas returned: incompatible Xcode version
   Please see the log file for port mas for details:
       /opt/local/var/macports/logs/_Users_kimuraw_work_ports_sysutils_mas/mas/main.log
   To report a bug, follow the instructions in the guide:
       http://guide.macports.org/#project.tickets
   Error: Processing of port mas failed