コマンドラインからApp Storeのアプリをインストール

下のブログで、コマンドラインからApp Storeのアプリをインストールするコマンドラインツールmas」が公開されていることを知りました。

rcmdnk.github.io

確かにわざわざAppStoreから1つずつインストールするのは面倒なので、自分の環境にも入れてみることにします。 brewコマンドを使ってインストールします。

% brew install argon/mas/mas
==> Tapping argon/mas
Cloning into '/usr/local/Library/Taps/argon/homebrew-mas'...
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.
Tapped 1 formula (25 files, 16.7K)
==> Installing mas from argon/mas
==> Downloading https://github.com/argon/mas/releases/download/v1.0.2/mas-cli.zip
==> Downloading from https://github-cloud.s3.amazonaws.com/releases/40092232/db54c896-af61-11e5-81e6-82cf43672901.zip?X-Amz-Algorithm
######################################################################## 100.0%
🍺  /usr/local/Cellar/mas/1.0.2: 2 files, 4.0M, built in 10 seconds

% mas
Available commands:

   account    Prints the primary account Apple ID
   help       Display general or command-specific help
   install    Install from the Mac App Store
   list       Lists apps from the Mac App Store which are currently installed
   outdated   Lists pending updates from the Mac App Store
   upgrade    Performs all pending updates from the Mac App Store
   version    Print version number

あっさり完了。ためしに、インストールされているアプリの一覧を出力するmas listを使ってみます。

% mas list
404647179 OmniOutliner Pro
442947586 Invisor
406056744 Evernote
409183694 Keynote
417375580 BetterSnapTool
409789998 Twitter
425424353 The Unarchiver
682658836 GarageBand
890031187 Marked 2
443987910 1Password
992076693 MindNode
409203825 Numbers
409201541 Pages
408981434 iMovie
417568953 Jedit X Plus
477163052 Linguan
803453959 Slack
445189367 PopClip
568494494 Pocket
449589707 Dash

おお。ちなみにこのIDは、アプリのリンクURLに書かれているIDと同じで、StoreServices.frameworkプライベートフレームワークにあるSSPurchaseクラスから得られる情報でした。「Keynote」や「Dash」のようなアプリ名を使うのでは他のアプリと被ってしまうことも多いので、妥当ですね。

インストールするときは、リストの最初にある数値を使う必要があるとのことです。Linguan(ID:477163052)を一度アンインストールして、インストールしてみます。

% mas install 477163052
==> Downloading Linguan
==> Installed Linguan

初回はAppStoreアプリが開いてパスワードの入力を求められましたが、あとはターミナル上にプログレスが表示され、やがてインストールが終わりました。むむ、これは便利です。

ソースコードを見てみたところ、多くの箇所でSwiftが使われていました。OS Xでも使われるようになったのですね。