Marcando scripts sh como executáveis no #Git. (#chmod #dev #windows #linux)

Overview
Bem-vindo a um guia rápido e prático para todos que enfrentam desafios ao trabalhar com scripts sh entre diferentes sistemas operacionais! Neste post, vou compartilhar uma solução simples para uma problema comum: garantir que seus scripts sejam reconhecidos como executáveis, não importa onde você esteja trabalhando. Se você já se encontrou perdido entre o Windows e o Linux nesse aspecto, este artigo é para você.
Neste post mostro o comando para adicionar a propriedade +X (executável) em um script sh e como fazer para executar este comando em lote. Esta foi uma situação que apareceu quando estava utilizando o Windows para criar um repositório com scripts que seriam executados no Linux.
A vantagem deste comando é que você consegue salvar no repositório quais arquivos devem ser considerados como executáveis e quais não são. Definitivamente, esta é uma abordagem que deve ser utilizada com cautela.
Para fazer isso é simples:
- Adicione o arquivo no repositório
- Atualize a propriedade +x para ele.
Exemplo:
Pronto. O arquivo foo.sh será sempre considerado como executável.
Definindo todos os arquivos .sh como executáveis
Ambos scripts devem ser executados no diretório raiz do repositório.
No Linux
No Windows (com PowerShell)
foreach ($file in Get-ChildItem -Path ./ -Filter *.sh -Recurse) {
$filePath = $file | Resolve-Path -Relative
& git update-index --chmod=+x $filePath
}
Se quiser, salve este comando em um script .ps1 e execute ele.
Espero ter ajudado.