Software Architect

Usando chocolatey para configurar ambiente de desenvolvimento

Todos nós já passámos por isso: um belo dia chegamos no trabalho, e temos a grande notícia de que vamos ter um PC novinho para trabalhar! SSD top, I7 de última geração e memória que quase dá para manter o chrome aberto por um dia!

Mas depois você lembra: meu pai do céu, vou ter que instalar tudo de novo!

Para aliviar o sofrimento, iremos utilizar o chocolatey para instalar tudo o que precisaremos na nossa nova máquina: Visual Studio, VS Code, Python, Node, Ruby e todas as ferramentas indispensáveis numa máquina de desenvolvimento.

O primeiro passo é instalar o chocolatey na máquina. Nada complicado, basta abrir uma janela powershell e executar, em modo administrador:

PS C:\> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

A partir daqui, para instalar qualquer coisa é só usar:

PS C:\> choco install vscode
PS C:\> choco install nodejs
PS C:\> choco install python

Já é um passo numa boa direção, mas podemos fazer melhor: podemos criar um script para automatizar todo o processo:

[string[]]$appList=
    'nodejs',
    'notepadplusplus',
    'python',
    'ruby',
    'jekyll', 
    'googlechrome', 
    'firefox', 
    'microsoft-edge',
    'microsoft-windows-terminal',
    'git', 
    'vscode',
    'visualstudio2019professional',
    'docker-desktop'

try {
    choco config get cachelocation
} catch {
    Write-Output "Chocolatey parece não estar instalado. Tentando instalar"
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
    Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
}

foreach ($app in $appList) {
    Write-Output "Instalando   $($app)"
    & choco install $app /y 
    Write-Output "================================================================================"
    Write-Output "$($app) Instalado "
    Write-Output "================================================================================"
}

Como o script está localizado no meu repositório do GitHub, posso iniciar todo o processo com uma única linha de powershell.

Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/pedroroque/scripts/master/chocolatey/devmachine.ps1'))