1

I have a JSON file "appSettings.json" which has the following content:

{
  "Branch": {
    "Name": "test"
  },
}

My question is, how do I set the value "Branch.Name" to something else when running the bitbucket pipleline?

sean717
  • 11,759
  • 20
  • 66
  • 90

2 Answers2

4

figured it out after checking this question.

- apt-get update
- apt-get install -y jq # install jq
- tmp=$(mktemp)
- jq '.Branch.Name = "prod"' appsettings.json > "$tmp" && mv "$tmp" appsettings.json
sean717
  • 11,759
  • 20
  • 66
  • 90
0

You can use standard Bash/Shell commands to do a 'Find and Replace' inside a text file:

Use sed

sed -i -e 's/"test"/"prod"/g' appSettings.json

# Delete the unwanted backup file, created by sed
if [ -e appSettings.json-e ]
then
    rm appSettings.json-e
fi

Use echo with Bash string substitution

Use this if you need to replace with special characters like "/" and "\", which sed cannot handle.

file_contents=$(< appSettings.json )
echo "${file_contents//\"test\"/\"prod\"}" > appSettings.json

More info and source: Find and Replace Inside a Text File from a Bash Command

Mr-IDE
  • 7,051
  • 1
  • 53
  • 59