Arquivo de pesquisa bash para padrão, substituir padrão por código que inclui o nome da ramificação Git
Eu tenho um arquivo README.md em que gostaria de substituir um identificador de texto{{CODESHIP_CODE}}
com uma linha de código - especificamente um snippet de código de imagem de status de construção que inclui o nome da ramificação git.
Eu estou pensando que seria algo parecido com isto ...
Coloque a ramificação atualgit rev-parse --abbrev-ref HEAD
na variável bashColoque o padrão / sequência a ser pesquisada em uma variável. Esse padrão / string é usado apenas como um identificador para localizar rapidamente onde, no arquivo README.md, desejo exibir o código da imagem do status da compilação.Usarsed
(possivelmentegrep
) para procurar no arquivo README.md o arquivo especificado{{CODESHIP_CODE}}
padrão / sequência e substitua-o pelo código de status da imagem de construçãoO código que escrevi tem a seguinte aparência:
#!/bin/bash
# Get the current branch
function git_branch {
git rev-parse --abbrev-ref HEAD
}
# Set variable to current branch
branch=$(git_branch)
# Define the pattern to search for
# This pattern/string gets replaced with the build status image code
id="{{CODESHIP_CODE}}"
# Create build status image code
# Inject the $branch variable into the correct location
codeship_build_status="[ ![Codeship Status for ExampleGitHubUser/ExampleRepo](https://codeship.com/projects/a99d9999-9b9f-9999-99aa-999a9a9a9999/status?branch=$branch)](https://codeship.com/projects/999999)"
# Find the pattern to replace
# Then replace it with the build status image
sed -i -e "s/{{CODESHIP_CODE}}/$codeship_build_status/g" README.md
O problema é que eu continuo recebendo o seguinte erro:
sed: 1: "s/{{CODESHIP_CODE}}/[ ! ...": bad flag in substitute command: 'a'
Não sei como resolver esse problema, para que o script funcione corretamente. Qualquer ajuda seria muito apreciada.