4 minutos
Instalando apps da Mac App Store através de CLI (mas)
Por mais que usuários de macOS façam poucas formatações do zero (pelo menos os que já conheci), a ideia de ter uma opção que instale todos os seus softwares diretamente da Mac Apple Store através de uma CLI é incrivel e abre as portas do mundo da automação, com essa premissa surge o mas.
Instalação
Para uma instalação utilizando os gerenciadores de pacotes deste post é necessário macOS 10.14 (Mojave).
O mas pode ser instalado preferencialmente utilizando Homebrew:
$ brew install mas
Também oferece instalação por meio do MacPorts:
$ sudo port install mas
Signin
O login deve ser feito manualmente, já que uma API
interna que possibilitava
a integração com o mas foi desabilitada no
macOS High Sierra (10.13+), registrada como
#164. Com isso abra a App Store
do seu macOS e faça o login. O comando utilizado para isso antes de ser
desativado por tempo indeterminado seria:
$ mas signin <email> '<password>'
Uma variação interessante sem registrar sua senha no histórico do terminal seria:
$ mas signin --dialog <email>
Onde <email>
e <password>
são relacionadas ao seu Apple ID.
Signout
Para remover suas credenciais do Apple ID da Mac App Store do sistema que está utilizando, precisando fazer novamente o login manual. Utilize o comando:
$ mas signout
Checando a conta em uso
Esta opção exibe o email vinculado a loja e que está sendo utilizado no mas:
$ mas account
Essa informação também fica visível no software da Mac App Store.
Busca
A busca de um software importante, para isso utilizamos:
$ mas search <name>
Sendo <name>
o nome do software que gostariamos de encontrar, na prática
seria algo como:
$ mas search xcode
<id> <name> <version>
Se parar para olhar as URL's
da Mac App Store, vai perceber que elas já tem o
id que está buscando para utilizar o mas.
Abaixo temos um schema da URL
:
https://apps.apple.com/<country>/app/<name>/id<id>?mt=12
Onde:
<country>
: a Apple diferencia a loja por país e alguns softwares tem restrição baseando se nesse parametro;<name>
: é o nome do software (na segunda coluna da listagem anterior) com algum slugfy aplicado, isso quer dizer que sempre é tudo minúsculo, espaços viram hífen (-
),ç
virac
, basicamente é a tabela ASCII sem a parte extendida;<id>
: id obtido na listagem anterior, mais precisamente na primeira coluna;mt
: o parâmetro que indica o tipo de loja, no caso o código 12 indica que é a Mac App Store.
Depois de inserido na URL fica assim:
https://apps.apple.com/br/app/xcode/id497799835?mt=12
Informações sobre o software
É possível obter informações sobre um software utilizando o comando:
$ mas info <id>
Instalação
Para instalar um software, pode utilizar o comando:
$ mas install <id>
Onde <id>
é sempre o item na primeira coluna da listagem.
Um aviso muito importante é o fato de que o comando ìnstall
só funciona em
software que já foi instalado manualmente e agora é somente uma reinstalaçã
Listar softwares instalados
Podemos listar software instalados utilizando o comando:
$ mas list
Precisam ser atualizados
Para os mais detalhistas ou que gostam de saber os mínimos detalhes de cada atualização, é possível saber quais pacotes estão desatualizados utilizando o comando:
$ mas outdated
Atualizando
Fazer a atualização de algum software pode utilizar o comando:
$ mas upgrade <id>
Onde toda vez que <id>
não for informado, todos os software são atualizados.
Integração com Homebrew
Essa integração é feita através do Brewfile
, já mencionado em outro
post,
o schema a ser utilizado é:
mas <name>, id: <id>
Onde ambos podem ser obtidos pelos comandos search e
list, adicionados ao Brewfile
como
demonstrado abaixo:
# Taps
tap "caskroom/cask"
tap "caskroom/fonts"
tap "homebrew/bundle"
tap "homebrew/cask-drivers"
cask_args appdir: "/Applications"
# Binaries
brew "hugo"
brew "tmux"
brew "vim"
# Apps
cask "alacritty", args: { appdir: "~/Applications" }
cask "vlc"
# mas
mas "Xcode", id: 497799835