Muito bom, você já tem os comandos mais importantes para executar a tarefa de baixar a versão mais atual do
Emby e instalar na máquina... para muitos somente isso já é o suficiente, então usando estes comandos em um arquivo que será interpretado por um outro programa e esse arquivo, pequeno Jedi, é o tão falado script.
Ele pode ser escrito em várias linguagens de programação, Python, Perl, PHP, Bash, C, C++ etc. Oque define a linguagem do script, além da extensão do nome, é a primeira linha onde colocamos o interpretador. Como nosso artigo é sobre bash, essa é a primeira linha:
#!/bin/bash
Se você escrever a linha do interpretador e os comandos logo abaixo, é só dar permissão de execução, pronto! Você fez um bash script que instala a versão mais recente do servidor Emby.
#!/bin/bash
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.4.2.0/emby-server-deb_4.4.2.0_amd64.deb
systemctl stop emby-server
dpkg -i emby-server-deb_4.4.2.0_amd64.deb
systemctl start emby-server
Só que esse script somente com os comandos é muito idiota... ( calma é o script, não quem escreveu ) e porque eu digo isso? Porque ele não vai "pensar", ele só vai reagir. Você chama o script e ele executa as tarefas.
- Script, baixar a versão do Emby - você diz com o comando
- Sim sr. - responde o script
Baixa o arquivo da versão 4.4.2.0 para o servidor, instala o pacote e reinicia o servidor.
- Excelente, funcionou! - você diz.
Coloca ele para rodar todos os dias e ele vai executar a mesma tarefa todos os dias, até o Emby lançar uma versão mais nova e o seu script se recusar a instalar... ele só instala a versão 4.4.2.0, e detalhe, ele instala toda a vez que é chamado. O pior, se você faz o update manual, a próxima vez que o script rodar ele faz downgrade para a versão 4.4.2.0.
Lembra o que eu falei sobre variáveis? Então vamos entender o que vai mudar com uma nova versão, como eu vou saber qual será o número da versão seguinte?
Vamos seguir os passos para fazer o download, entramos na página:
selecionamos o Debian e antes de clicar com o botão esquerdo do mouse vamos clicar com o direito e copiar o caminho onde este link está nos levando.
Cole na barra de endereços, mas não entre nele ainda... vamos analisar.
https://github.com/MediaBrowser/Emby.Releases/releases/download/4.4.2.0/emby-server-deb_4.4.2.0_amd64.deb
Apagando tudo depois de onde a primeira vez que a versão aparece, temos:
https://github.com/MediaBrowser/Emby.Releases/releases/download/
Agora sim, aperte o enter e se depare com uma página 404 ( página não encontrada )... calma pequeno Jedi, continue a busca, apague mais uma palavra, download:
https://github.com/MediaBrowser/Emby.Releases/releases
- Eita! Agora apareceu uma página com todas as versões do Emby, incluindo uma beta de testes, versão 4.5.0.10...
Esse número, já posso colocar no meu script?
- Calma pequeno Jedi, ainda não... vamos olhar o código-fonte desta página, você tanto pode abrir esse link em um editor de texto como no próprio navegador clicando com o direito do mouse.
- "Eita, eu não entendo HTML, é muita informação para a minha cabeça..."
- Calma pequeno Jedi... vamos focar naquilo que estamos procurando, não se preocupe com códigos que você não entende ainda. Vamos focar na próxima versão do servidor, porém só sabemos a versão atual.
Enquanto eu escrevo este artigo é a 4.4.2.0. Então se você abriu o código-fonte em um navegador ou um editor de textos, esse programa vai ter um método de busca, vamos usar esse método para buscar a versão atual, 4.4.2.0.
Vendo o link anterior onde tem versão atual, temos o seguinte:
https://github.com/MediaBrowser/Emby.Releases/releases/latest
(latest significa mais recente)
Agora vamos abrir este link no navegador... e surpresa, somos redirecionados para o link:
https://github.com/MediaBrowser/Emby.Releases/releases/tag/4.4.2.0
que mostra o número da versão mais atual. Agora vamos usar o bash para verificar como este link vai aparecer no nosso script.
curl https://github.com/MediaBrowser/Emby.Releases/releases/latest
Usando o comando acima recebemos um texto em HTML indicando que estamos sendo redirecionados e o link ao qual estamos sendo redirecionado. Veja que no link tem logo após tag a versão mais atual...
Essa informação que queremos, vamos adicionar ao curl o cut, que vai cortar o excesso, deixando só o que interessa. O cut recebe como parâmetro o "-d" (delimitador), ou seja, onde haverá os cortes e "-f" (field), ou campo de interesse, no caso do link podemos usar o "/" como delimitador e o campo "8" é onde está a versão:
1. https:/ 2. / 3. github.com/ 4. MediaBrowser/ 5. Emby.Releases/ 6. releases/ 7. tag/ 8. 4.4.2.0
curl https://github.com/MediaBrowser/Emby.Releases/releases/latest | cut -d "/" -f 8
Com isso temos 4.4.2.0">redirected<, agora vamos adicionar mais um cut para separar as aspas, lembrando que para isso devemos adicionar um "" antes da aspas para não confundir o cut.
curl https://github.com/MediaBrowser/Emby.Releases/releases/latest | cut -d "/" -f 8 | cut -d """ -f 1
Eu sei que vai ter pessoas minimalistas gritando que tem um modo mais eficiente, mas calma... eu vou retornar com uma revelação muito legal na próxima página.