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

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:

  1. Adicione o arquivo no repositório
  2. Atualize a propriedade +x para ele.

Exemplo:

git add foo.sh
git update-index --chmod=+x foo.sh

 

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

find ./ -type f -name "*.sh" -exec git update-index --chmod=+x {} \;

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.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in .Net, Conhecimento Técnico, Dev, Linux/Bash and tagged , , , , .