Skip to content

Commit

Permalink
Fix Update dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
seedysoft committed Jul 15, 2024
1 parent f1aebea commit 51ceb17
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 54 deletions.
29 changes: 21 additions & 8 deletions doc/PublishCommands.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
**Publish all projects from Acer:**
```PowerShell
$Config="Debug"
$Config="Release"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\Seedysoft.Tests.sln"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Outbox\ConsoleApp\Seedysoft.Outbox.ConsoleApp.csproj"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Pvpc\ConsoleApp\Seedysoft.Pvpc.ConsoleApp.csproj"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Update\ConsoleApp\Seedysoft.Update.ConsoleApp.csproj"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\WebComparer\ConsoleApp\Seedysoft.WebComparer.ConsoleApp.csproj"
$ProjectOrSolution="C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\BlazorWebApp\Server\Seedysoft.BlazorWebApp.Server.csproj"
dotnet publish $ProjectOrSolution -p:PublishDir=D:\\_Syncthing\Seedysoft\linux-arm64\ -c Release -r linux-arm64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=D:\\_Syncthing\Seedysoft\win-x64\ -c Release -r win-x64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
$PublishDir="D:\Test\linux-x64\"
$PublishDir="D:\Test\win-x64"
$PublishDir="D:\_Syncthing\Seedysoft\linux-arm64\"
$PublishDir="D:\_Syncthing\Seedysoft\win-x64\"
dotnet publish $ProjectOrSolution -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=$PublishDir -c $Config -r win-x64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=D:\\Test\linux-x64\ -c Debug -r linux-x64 -p:EnvironmentName="Development" -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=D:\\Test\linux-x64\ -c Release -r linux-x64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=$PublishDir -c $Config -r linux-x64 -p:EnvironmentName="Development" -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish $ProjectOrSolution -p:PublishDir=$PublishDir -c $Config -r linux-x64 -p:BlazorCacheBootResources=false -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Outbox\ConsoleApp\Seedysoft.Outbox.ConsoleApp.csproj -p:PublishDir=D:\\_Syncthing\Seedysoft\linux-arm64\ -c Release -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Pvpc\ConsoleApp\Seedysoft.Pvpc.ConsoleApp.csproj -p:PublishDir=D:\\_Syncthing\Seedysoft\linux-arm64\ -c Release -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\WebComparer\ConsoleApp\Seedysoft.WebComparer.ConsoleApp.csproj -p:PublishDir=D:\\_Syncthing\Seedysoft\linux-arm64\ -c Release -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\BlazorWebApp\Server\Seedysoft.BlazorWebApp.Server.csproj -p:PublishDir=D:\\_Syncthing\Seedysoft\linux-arm64\ -c Release -r linux-arm64 -p:PublishTrimmed=false --sc -p:BlazorCacheBootResources=false ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Outbox\ConsoleApp\Seedysoft.Outbox.ConsoleApp.csproj -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Pvpc\ConsoleApp\Seedysoft.Pvpc.ConsoleApp.csproj -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\Update\ConsoleApp\Seedysoft.Update.ConsoleApp.csproj -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\WebComparer\ConsoleApp\Seedysoft.WebComparer.ConsoleApp.csproj -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:PublishTrimmed=false --sc ;
dotnet publish C:\Users\alfon\_prog\seedysoft\all-my-stuff\src\BlazorWebApp\Server\Seedysoft.BlazorWebApp.Server.csproj -p:PublishDir=$PublishDir -c $Config -r linux-arm64 -p:PublishTrimmed=false --sc -p:BlazorCacheBootResources=false ;
```

**Publish all projects from Raspberrypi4:**
Expand Down
2 changes: 1 addition & 1 deletion src/BlazorWebApp/Client/Layout/MainLayout.razor
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<MudLayout>
<MudAppBar Elevation="1">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
<MudText Typo="Typo.h5" Class="ml-3">Application</MudText>
<MudText Typo="Typo.h5" Class="ml-3">My stuff</MudText>
<MudSpacer />
<MudIconButton Icon="@Icons.Material.Filled.MoreVert" Color="Color.Inherit" Edge="Edge.End" />
</MudAppBar>
Expand Down
2 changes: 1 addition & 1 deletion src/BlazorWebApp/Client/Layout/NavMenu.razor
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
<MudNavLink Href="counter" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Add">Counter</MudNavLink>
<MudNavLink Href="weather" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.List">Weather</MudNavLink>
<MudNavLink Href="travelsearch" Match="NavLinkMatch.Prefix">Travel</MudNavLink>
<MudNavLink Href="swagger" Match="NavLinkMatch.Prefix">Swagger</MudNavLink>
<MudNavLink Href="swagger" Match="NavLinkMatch.Prefix" Target="_blank">Swagger</MudNavLink>
</MudNavMenu>
5 changes: 4 additions & 1 deletion src/Update/Lib/Dependencies/Configurator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ protected override void AddJsonFiles(Microsoft.Extensions.Hosting.IHostApplicati

protected override void AddDbContexts(Microsoft.Extensions.Hosting.IHostApplicationBuilder hostApplicationBuilder) { /* No DbContexts */ }

protected override void AddMyServices(Microsoft.Extensions.Hosting.IHostApplicationBuilder hostApplicationBuilder) =>
protected override void AddMyServices(Microsoft.Extensions.Hosting.IHostApplicationBuilder hostApplicationBuilder)
{
hostApplicationBuilder.Services.TryAddSingleton(hostApplicationBuilder.Configuration.GetSection(nameof(UpdateSettings)).Get<UpdateSettings>()!);
hostApplicationBuilder.Services.TryAddSingleton<Services.UpdateBackgroundServiceCron>();
}
}
59 changes: 16 additions & 43 deletions src/Update/Lib/Services/UpdateBackgroundServiceCron.cs
Original file line number Diff line number Diff line change
@@ -1,58 +1,31 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Octokit;
using Seedysoft.Libs.Update;
using Seedysoft.Libs.Utils.Extensions;
using Seedysoft.Update.Lib.Settings;

namespace Seedysoft.Update.Lib.Services;

public class UpdateBackgroundServiceCron(IServiceProvider serviceProvider) : Libs.BackgroundServices.Cron(
serviceProvider,
serviceProvider.GetRequiredService<Microsoft.Extensions.Hosting.IHostApplicationLifetime>()), IDisposable
public class UpdateBackgroundServiceCron : Libs.BackgroundServices.Cron
{
private readonly ILogger<UpdateBackgroundServiceCron> logger = serviceProvider.GetRequiredService<ILogger<UpdateBackgroundServiceCron>>();
private readonly ManualResetEvent locker = new(false);
private readonly IServiceProvider serviceProvider = serviceProvider;
private bool disposedValue;
private readonly ILogger<UpdateBackgroundServiceCron> logger;
private readonly IServiceProvider serviceProvider;

protected virtual void Dispose(bool disposing)
public UpdateBackgroundServiceCron(IServiceProvider serviceProvider) : base(
serviceProvider,
serviceProvider.GetRequiredService<Microsoft.Extensions.Hosting.IHostApplicationLifetime>())
{
if (!disposedValue)
{
if (disposing)
{
base.Dispose();

// dispose managed state (managed objects)
locker?.Dispose();
}
this.serviceProvider = serviceProvider;

// free unmanaged resources (unmanaged objects) and override finalizer
// set large fields to null
disposedValue = true;
}
}
// // override finalizer only if 'Dispose(bool disposing)' has code to free unmanaged resources
// ~UpdateService()
// {
// // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
// Dispose(disposing: false);
// }
public override void Dispose()
{
base.Dispose();
logger = serviceProvider.GetRequiredService<ILogger<UpdateBackgroundServiceCron>>();

// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
Dispose(disposing: true);
GC.SuppressFinalize(this);
Config = ServiceProvider.GetRequiredService<Settings.UpdateSettings>();
}

public override async Task DoWorkAsync(CancellationToken cancellationToken)
{
try
{
Version? currentVersion = EnvironmentUtil.ParseVersion(EnvironmentUtil.Version());
Version? currentVersion = Libs.Update.EnvironmentUtil.ParseVersion(Libs.Update.EnvironmentUtil.Version());
if (currentVersion == new Version(0, 0, 0))
{
logger.LogInformation("Skipping checking for new releases because is runing in IDE.");
Expand All @@ -74,7 +47,7 @@ public override async Task DoWorkAsync(CancellationToken cancellationToken)
return;
}

Version? latestVersion = EnvironmentUtil.ParseVersion(latestRelease.Name);
Version? latestVersion = Libs.Update.EnvironmentUtil.ParseVersion(latestRelease.Name);
if (latestVersion == null)
{
logger.LogInformation("Failed to parse latest version.");
Expand Down Expand Up @@ -112,14 +85,14 @@ public override async Task DoWorkAsync(CancellationToken cancellationToken)

private void StartUpdater(string directory)
{
string UpdaterFullPath = Path.Combine(directory, EnvironmentUtil.GetUpdaterFileName());
string UpdaterFullPath = Path.Combine(directory, Libs.Update.EnvironmentUtil.GetUpdaterFileName());
if (!File.Exists(UpdaterFullPath))
{
logger.LogError("Updater file {UpdaterFullPath} does NOT found.", UpdaterFullPath);
return;
}

UpdateConsoleOptions upd = UpdateConsoleOptions.Default;
Settings.UpdateConsoleOptions upd = Settings.UpdateConsoleOptions.Default;
upd.LaunchDebugger = true;
System.Diagnostics.ProcessStartInfo processStartInfo = new()
{
Expand Down Expand Up @@ -148,7 +121,7 @@ private void StartUpdater(string directory)
{
GitHubClient gitHubClient = new(new ProductHeaderValue(Libs.Core.Constants.Github.RepositoryName))
{
Credentials = new Credentials(serviceProvider.GetRequiredService<UpdateSettings>().GithubPat)
Credentials = new Credentials(serviceProvider.GetRequiredService<Settings.UpdateSettings>().GithubPat)
};

return (await gitHubClient.Repository.Release.GetAll(Libs.Core.Constants.Github.OwnerName, Libs.Core.Constants.Github.RepositoryName)).Any()
Expand All @@ -168,7 +141,7 @@ private void StartUpdater(string directory)

string platform;
string extractorFileName;
if (EnvironmentUtil.IsWindows)
if (Libs.Update.EnvironmentUtil.IsWindows)
{
extractorFileName = @"C:\Program Files\7-Zip\7z.exe";
platform = "win";
Expand Down Expand Up @@ -259,7 +232,7 @@ protected internal void ExtractFile(string extractorFileName, string sourceFileN

public async Task CopyUpdatesAsync(string destinationDirectory, CancellationToken cancellationToken)
{
string[] allFileNames = Directory.GetFiles(EnvironmentUtil.ExecutablePath(), "*.*", SearchOption.AllDirectories);
string[] allFileNames = Directory.GetFiles(Libs.Update.EnvironmentUtil.ExecutablePath(), "*.*", SearchOption.AllDirectories);
logger.LogInformation("{Length} update files found", allFileNames.Length);

try
Expand Down

0 comments on commit 51ceb17

Please sign in to comment.