Skip to content

Commit 8670bef

Browse files
mthalmanBrent Schmaltz
authored and
Brent Schmaltz
committed
Bash version of updateAssemblyInfo script (#2211)
* Bash version of updateAssemblyInfo script * Remove dependency on xmllint tool which might not exist in environment * Replace grep with sed This allows it work in BusyBox where grep doesn't have support for Perl regex syntax
1 parent 087d9b0 commit 8670bef

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

updateAssemblyInfo.sh

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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

Comments
 (0)