Eu tenho um fluxo de trabalho do Automator e uma das ações é clonar um repositório. Aqui está o código para a ação 'Executar script do shell'. O comando é executado no shell Bash /bin/bash
se isso importa:
SOURCEDIR="${3/\/Volumes/}"
cd "$2"
REPOURL="[email protected]:$SOURCEDIR"
WORKINGDIR="$1"
# Capture any errors with cloning process in log file
git clone "$REPOURL" "$WORKINGDIR" &> ./log.txt
// For debugging
echo "exit code: $?"
echo "PPID: $PPID"
open .
Agora, o aplicativo Automator funciona bem na minha máquina. O caminho para o git na minha máquina (A Macbook Pro) é: /usr/bin/git
(acredito que instalei o git na minha máquina através do Xcode)
Mas na máquina do meu colega de trabalho (também um Mac Pro), o Automator App falha. De fato, a saída do arquivo log.txt diz:bash: git: command not found
Agora, na máquina do meu colega de trabalho, o caminho para o git é:, usr/local/git/bin
que, sim, é diferente porque ele instalou o git por meio do Google Git Installer para Mac OS X, mas não achei que fosse importante, porque no script o comando git não é um caminho absoluto para o comando e ainda mais, meu colega de trabalho pode executar o git normalmente a partir de um script Bash, mas quando invocado diretamente no Terminal.
Então, o que dá? Por que o fluxo de trabalho do automator funciona para mim, mas não para meu colega de trabalho?
Deve haver algo fundamental sobre o Bash ou o Unix que não estou entendendo aqui, mas estou perdido.
Para uma solução mais geral para o ambiente bash no automator diferente da sua, você pode simplesmente carregar seu perfil pessoal na primeira linha do script bash do automator:
Isso tornará o caminho e quaisquer outras variáveis de ambiente que você está acostumado a usar disponíveis no seu script de automação.
fonte
Resolvi o mesmo problema dos mesmos fluxos de trabalho de "serviço" sendo executados em máquinas configuradas de forma diferente, verificando o que acontece quando o terminal inicia o shell e, eventualmente, adicionando o seguinte trecho à parte superior de todas as minhas ações "Executar script de shell":
Isso abrange todos os casos que encontrei até agora.
fonte
Se você deseja que o fluxo de trabalho funcione em ambas as máquinas que possuem git em locais diferentes, adicione cada local à variável PATH que patrix mencionada, separada por a
:
, conforme explicado aqui: https://developer.apple.com/library/mac /documentation/AppleApplications/Conceptual/AutomatorConcepts/Articles/ShellScriptActions.htmlPortanto, no topo do seu Script do Shell de Fluxo de Trabalho, você adicionaria:
PATH=/usr/bin:/usr/local/bin export PATH
fonte