|
| 1 | +#!/bin/bash |
| 2 | +set -euo pipefail |
| 3 | + |
| 4 | +scriptroot=$(cd -P "$(dirname -- "${BASH_SOURCE[0]}")" && pwd) |
| 5 | + |
| 6 | +packageType=${1:-preview} |
| 7 | + |
| 8 | +date=$(date '+%y%m%d%H%M%S') |
| 9 | +# Formats the date by replacing the 4-digit year with a 2-digit value and then subtract 19 |
| 10 | +dateTimeStamp=$(echo $((10#${date:0:2}-19)))${date:2} |
| 11 | + |
| 12 | +commitSha=$(git rev-parse HEAD) |
| 13 | + |
| 14 | +assemblyVersion=$(sed -n 's/.*<assemblyVersion>\([^<]*\)<.*/\1/p' $PWD/buildConfiguration.xml) |
| 15 | +assemblyFileVersion="$assemblyVersion.${dateTimeStamp::-6}" # Trim minutes/seconds |
| 16 | +assemblyInformationalVersion="$assemblyVersion.$dateTimeStamp.$commitSha" |
| 17 | + |
| 18 | +echo "assemblyVersion: $assemblyVersion" |
| 19 | +echo "assemblyFileVersion: $assemblyFileVersion" |
| 20 | +echo "assemblyInformationalVersion: $assemblyInformationalVersion" |
| 21 | + |
| 22 | +nugetSuffix=$(sed -n 's/.*<nugetSuffix>\([^<]*\)<.*/\1/p' $PWD/buildConfiguration.xml) |
| 23 | +if [ "$packageType" = "release" ] |
| 24 | +then |
| 25 | + versionSuffix="" |
| 26 | +else |
| 27 | + versionSuffix="$nugetSuffix-$dateTimeStamp" |
| 28 | +fi |
| 29 | + |
| 30 | +echo "nugetSuffix: $nugetSuffix" |
| 31 | + |
| 32 | +versionPath="$PWD/build/version.props" |
| 33 | +version=$(cat $versionPath) |
| 34 | +version=$(echo "$version" | sed "s|<VersionPrefix>.*</VersionPrefix>|<VersionPrefix>$assemblyVersion</VersionPrefix>|") |
| 35 | +version=$(echo "$version" | sed "s|<VersionSuffix>.*</VersionSuffix>|<VersionSuffix>$versionSuffix</VersionSuffix>|") |
| 36 | +echo "$version" > $versionPath |
| 37 | + |
| 38 | +projects=$(sed -n '/<src>/,/<\/src>/p' $PWD/buildConfiguration.xml | sed -n 's/.*name="\([^"]*\)".*/\1/p') |
| 39 | + |
| 40 | +for project in $projects; do |
| 41 | + name="$project" |
| 42 | + assemblyInfoPath="$PWD/src/$name/Properties/AssemblyInfo.cs" |
| 43 | + echo "assemblyInfoPath: $assemblyInfoPath" |
| 44 | + |
| 45 | + assemblyInfo=$(cat $assemblyInfoPath) |
| 46 | + assemblyInfo=$(echo "$assemblyInfo" | sed "s|AssemblyVersion.*|AssemblyVersion(\"$assemblyVersion\")]|") |
| 47 | + assemblyInfo=$(echo "$assemblyInfo" | sed "s|AssemblyFileVersion.*|AssemblyFileVersion(\"$assemblyFileVersion\")]|") |
| 48 | + assemblyInfo=$(echo "$assemblyInfo" | sed "s|AssemblyInformationalVersion.*|AssemblyInformationalVersion(\"$assemblyInformationalVersion\")]|") |
| 49 | + echo "$assemblyInfo" > $assemblyInfoPath |
| 50 | +done |
0 commit comments