MacでApp Storeのアプリをコマンドラインからインストールする で書いたとおりついにMacで コマンドラインからApp Storeのアプリをインストールできる様になったので これを Brew-file に導入し、必要なコマンドラインツールやアプリを 全てBrewfileを元にBrew-fileでインストールできる様になりました。
Brew-fileではHomebrewでインストールされるコマンドラインツールはもちろん、 Homebrew-caskでインストールしたアプリも管理できる様になってます。
大概はこれで済むのですが、一部、App Store経由でインストールしてるアプリがあって、 その情報に関してはとりあえず手元にあるものをリストする、 という形をとっていました。
リストには残せますが、他のマシンとかに行ってbrew file install
しても
Please install ~ from App Store!
みたいな表示を出すだけでした。
しかし、今回mas
というコマンドが公開され、これによって コマンドラインからApp Storeのアプリもインストール出来る様になりました。
これを組み込んでBrew-fileでもApp Storeのアプリをインストールできるようにしました。
mas
でインストールする場合には 各アプリのIDみたいなものが必要ですが、 これはmas list
コマンドでアプリとIDの一覧が取得できます。
これを使って、Brew-fileではbrew file init
すると、 Brewfileの中に
# App Store applications (Identifier, App Name)
appstore 451732904 App Language Chooser
appstore 430173763 Degrees
appstore 458998390 Farensius
appstore 682658836 GarageBand
appstore 992115977 Image2Icon
appstore 409183694 Keynote
...
みたいなリストが出来ます。
このファイルを他のマシンに持って行って brew file install
すればこれらのアプリもインストールできます。
App Storeのアプリをインストールする際、最初だけ App Storeのアカウント認証のダイアログが出てきます。
今のところアプリのIDを取る方法がmas
を使う方法しかなく、 ちょっと見た感じでどうやって取ってきてるのか分からなかったので、 mas list
の情報に頼りざるを得ません。
なので、brew file init
でBrewfileを作ってもらえればそのまま使えますが、 Brewfileを直接書こうとするときにも一度手元にアプリがある状態で mas
を使って調べないとApp Storeのアプリはかけません。
以前の様に名前だけ書いておいても通りますが、 その場合、clean
の時に削除するかどうかの判断に使われるのと、 install
の際にまだインストールされてないアプリがあると、
App Store application must be listed with identifier.
Please try:
$ brew file init
の様な表示が出るようにしておきました。
これであるマシンの環境をbrew file init
でBrewfileを書き出して 他のマシンでbrew file install
することで 一通りアプリ、コマンドラインツールのインストールを行える様になりました。
同期してる様な場合でもApp Storeなアプリも自動で入れられます。 大分便利になった感。