diff --git a/pack-local.sh b/pack-local.sh new file mode 100755 index 0000000..cfd7806 --- /dev/null +++ b/pack-local.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +feed="${SHEDDUELLER_LOCAL_FEED:-"$HOME/.nuget/local-sheddueller"}" +version="${1:-${SHEDDUELLER_LOCAL_VERSION:-"0.1.0-local.$(date -u +%Y%m%d).$(date -u +%s)"}}" +configuration="${CONFIGURATION:-Release}" + +projects=( + "src/Sheddueller/Sheddueller.csproj" + "src/Sheddueller.Worker/Sheddueller.Worker.csproj" + "src/Sheddueller.Postgres/Sheddueller.Postgres.csproj" + "src/Sheddueller.Dashboard/Sheddueller.Dashboard.csproj" + "src/Sheddueller.Testing/Sheddueller.Testing.csproj" +) + +mkdir -p "$feed" + +{ + printf 'Packing Sheddueller local packages\n' + printf ' Version: %s\n' "$version" + printf ' Feed: %s\n' "$feed" + printf ' Configuration: %s\n' "$configuration" +} >&2 + +cd "$repo_root" + +for project in "${projects[@]}"; do + printf 'Packing %s\n' "$project" >&2 + dotnet pack "$project" \ + --configuration "$configuration" \ + --output "$feed" \ + -p:Version="$version" \ + -p:PackageVersion="$version" >&2 +done + +printf '%s\n' "$version" diff --git a/src/Sheddueller.Dashboard/Components/DashboardApp.razor b/src/Sheddueller.Dashboard/Components/DashboardApp.razor index f14ce24..6fa7c4e 100644 --- a/src/Sheddueller.Dashboard/Components/DashboardApp.razor +++ b/src/Sheddueller.Dashboard/Components/DashboardApp.razor @@ -21,7 +21,7 @@ - + @@ -31,4 +31,22 @@ => DashboardOptions.Value.Prerender ? InteractiveServer : new InteractiveServerRenderMode(prerender: false); + + private static string DashboardAssetVersion + { + get + { + var assembly = typeof(ShedduellerDashboardOptions).Assembly; + var attribute = (System.Reflection.AssemblyInformationalVersionAttribute?)Attribute.GetCustomAttribute( + assembly, + typeof(System.Reflection.AssemblyInformationalVersionAttribute)); + var version = attribute?.InformationalVersion ?? assembly.GetName().Version?.ToString() ?? "dev"; + var location = assembly.Location; + var stamp = string.IsNullOrEmpty(location) || !File.Exists(location) + ? assembly.ManifestModule.ModuleVersionId.ToString("N") + : File.GetLastWriteTimeUtc(location).Ticks.ToString(System.Globalization.CultureInfo.InvariantCulture); + + return Uri.EscapeDataString(string.Concat(version, ".", stamp)); + } + } } diff --git a/src/Sheddueller.Dashboard/Components/DashboardLayout.razor b/src/Sheddueller.Dashboard/Components/DashboardLayout.razor index 2f20cfd..02085f4 100644 --- a/src/Sheddueller.Dashboard/Components/DashboardLayout.razor +++ b/src/Sheddueller.Dashboard/Components/DashboardLayout.razor @@ -6,7 +6,7 @@