existe um hack para a linha shebang multiplataforma totalmente funcional?
Pergunta
Problema: aparentemente, os scripts no diretório .git/hooks dependem do nome do arquivo que corresponde a um dos seguintes:
post-commit
pre-commit
pre-rebase
etc...
Nenhum conceito de "extensão de arquivo" é necessário porque a "linha shebang" indica como o arquivo deve ser executado, desde que seja executável e esteja rodando em sua máquina Linux.
O problema é quando você tem alguns scripts que deseja executar em uma caixa do Windows.
Pergunta: Existe uma maneira de executar os scripts de gancho que possam ser entendidos em uma máquina Windows?
Solução
Não acho que o Windows tenha o conceito de executar arquivos sem extensão. As soluções alternativas seriam para 1) usaria o Cygwin Git sob Bash, onde todo o negócio de Shebang funciona ou 2) um hack na versão Windows Git que realmente analisa a linha shebang e carrega o intérprete apropriado. Eu posso ver todos os tipos de objeções filosóficas ao último, então eu acho que isso não vai acontecer ...
Outras dicas
Sei que estou muito atrasado nisso, mas tenho uma solução para você.Se você estiver usando python, adicione ".py" à variável de ambiente PATHEXT (Painel de Controle, Sistema, Avançado, Variáveis de Ambiente).Da mesma forma para sua linguagem de script específica.Em seguida, nomeie os ganchos como post-commit.py, pre-commit.py, etc.Quando um programa solicita ao Windows para executar o arquivo "post-commit" em um determinado diretório, o Windows examinará PATHEXT em ordem até encontrar um arquivo correspondente a "post-commit.extension", que será então executado.Eu fiz isso há muito tempo com svn hooks no Windows.
Na verdade, eu me contentei para a opção 3):
Crie um script "wrapper" do Windows que invoca o Git e Invoca todos os ganchos associados que eu quero executar. A desvantagem é que eu tenho que configurar o programa Wrapper para fazer o que o Git teria feito automaticamente se eu pudesse usar apenas os arquivos de gancho padrão.