Added ISO
This commit is contained in:
parent
38340090be
commit
c831ad2ab9
4
.vscode/.UserSecrets/file-watcher.json
vendored
4
.vscode/.UserSecrets/file-watcher.json
vendored
@ -32,6 +32,10 @@
|
||||
"TNSX": "(description=(address_list=(address=(protocol=tcp)(host=fimesp-db.mes.infineon.com)(port=7002)))(connect_data=(sid=fimesp)))",
|
||||
"UserName": "edastag"
|
||||
},
|
||||
"IsoConfiguration": {
|
||||
"DestinationDirectory": "D:/EAF/drssdv702.eu.infineon.com-eafdev-DeliveredPackages-IFX.EAF Kernel SEMI/v2.57.0.0",
|
||||
"SourceDirectory": "\\\\eafdev.drs.infineon.com\\eafdev\\DeliveredPackages\\IFX.EAF Kernel SEMI\\v2.57.0.0\\EAF v2.57.0.0 API\\complete_with_adaptations"
|
||||
},
|
||||
"MetrologyConfiguration": {
|
||||
"DeleteOlderThanWeeks": 16,
|
||||
"DirectoriesBack": 2,
|
||||
|
@ -10,34 +10,35 @@
|
||||
<UserSecretsId>6062c774-99a9-4f4a-b42d-a9cb7fcbd8be</UserSecretsId>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.7" />
|
||||
<PackageReference Include="DiscUtils.Iso9660" Version="0.16.13" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
|
||||
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="23.5.0" />
|
||||
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="8.0.7" />
|
||||
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="23.5.1" />
|
||||
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="8.0.8" />
|
||||
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
40
Helpers/HelperISO.cs
Normal file
40
Helpers/HelperISO.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using DiscUtils.Iso9660;
|
||||
using File_Watcher.Models;
|
||||
|
||||
namespace File_Watcher.Helpers;
|
||||
|
||||
internal static partial class HelperISO
|
||||
{
|
||||
|
||||
private static void DirectoryToISO(ILogger<Worker> logger, string destinationDirectory, bool mapOnly, string directory)
|
||||
{
|
||||
byte[] bytes = [];
|
||||
string relativePath;
|
||||
string directoryName = Path.GetFileName(directory);
|
||||
CDBuilder builder = new() { UseJoliet = true, VolumeIdentifier = directoryName.Length < 25 ? directoryName : directoryName[..25] };
|
||||
IEnumerable<string> files = Directory.EnumerateFiles(directory, "*", new EnumerationOptions { IgnoreInaccessible = true, RecurseSubdirectories = true });
|
||||
foreach (string file in files)
|
||||
{
|
||||
relativePath = Path.GetRelativePath(directory, file).Replace(';', '_');
|
||||
if (!mapOnly)
|
||||
_ = builder.AddFile(relativePath, file);
|
||||
else
|
||||
_ = builder.AddFile(relativePath, bytes);
|
||||
}
|
||||
logger.LogInformation(destinationDirectory);
|
||||
builder.Build(Path.Combine(destinationDirectory, $"{directoryName}.iso"));
|
||||
logger.LogInformation(directoryName);
|
||||
}
|
||||
|
||||
internal static bool DirectoryToISO(AppSettings appSettings, ILogger<Worker> logger)
|
||||
{
|
||||
IsoConfiguration isoConfiguration = appSettings.IsoConfiguration;
|
||||
logger.LogInformation(isoConfiguration.SourceDirectory);
|
||||
bool mapOnly = isoConfiguration.SourceDirectory.Length == 2;
|
||||
if (!Directory.Exists(isoConfiguration.DestinationDirectory))
|
||||
_ = Directory.CreateDirectory(isoConfiguration.DestinationDirectory);
|
||||
DirectoryToISO(logger, isoConfiguration.DestinationDirectory, mapOnly, isoConfiguration.SourceDirectory);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -3,13 +3,14 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models;
|
||||
|
||||
public record AppSettings(EAFLogConfiguration EAFLogConfiguration,
|
||||
public record AppSettings(CompassConfiguration CompassConfiguration,
|
||||
DriveConfiguration DriveConfiguration,
|
||||
EAFLogConfiguration EAFLogConfiguration,
|
||||
EAFProgramDataConfiguration EAFProgramDataConfiguration,
|
||||
EDADatabaseConfiguration EDADatabaseConfiguration,
|
||||
CompassConfiguration CompassConfiguration,
|
||||
DriveConfiguration DriveConfiguration,
|
||||
NugetConfiguration NugetConfiguration,
|
||||
IsoConfiguration IsoConfiguration,
|
||||
MetrologyConfiguration MetrologyConfiguration,
|
||||
NugetConfiguration NugetConfiguration,
|
||||
SerialConfiguration SerialConfiguration,
|
||||
StratusConfiguration StratusConfiguration,
|
||||
TransmissionControlProtocolConfiguration TransmissionControlProtocolConfiguration,
|
||||
|
@ -44,13 +44,14 @@ public class AppSettings
|
||||
}
|
||||
|
||||
private static Models.AppSettings Get(AppSettings? appSettings,
|
||||
DriveConfiguration driveConfiguration,
|
||||
CompassConfiguration compassConfiguration,
|
||||
DriveConfiguration driveConfiguration,
|
||||
EAFLogConfiguration eafLogConfiguration,
|
||||
EAFProgramDataConfiguration eafProgramDataConfiguration,
|
||||
EDADatabaseConfiguration edaDatabaseConfiguration,
|
||||
NugetConfiguration nugetConfiguration,
|
||||
IsoConfiguration isoConfiguration,
|
||||
MetrologyConfiguration metrologyConfiguration,
|
||||
NugetConfiguration nugetConfiguration,
|
||||
SerialConfiguration serialConfiguration,
|
||||
StratusConfiguration stratusConfiguration,
|
||||
TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
|
||||
@ -65,13 +66,14 @@ public class AppSettings
|
||||
if (appSettings.MillisecondsDelay is null) throw new NullReferenceException(nameof(MillisecondsDelay));
|
||||
if (appSettings.WatchDirectory is null) throw new NullReferenceException(nameof(WatchDirectory));
|
||||
Verify(appSettings);
|
||||
result = new(eafLogConfiguration,
|
||||
result = new(compassConfiguration,
|
||||
driveConfiguration,
|
||||
eafLogConfiguration,
|
||||
eafProgramDataConfiguration,
|
||||
edaDatabaseConfiguration,
|
||||
compassConfiguration,
|
||||
driveConfiguration,
|
||||
nugetConfiguration,
|
||||
isoConfiguration,
|
||||
metrologyConfiguration,
|
||||
nugetConfiguration,
|
||||
serialConfiguration,
|
||||
stratusConfiguration,
|
||||
transmissionControlProtocolConfiguration,
|
||||
@ -110,13 +112,14 @@ public class AppSettings
|
||||
results = (string.IsNullOrEmpty(json) ? null : results = JsonSerializer.Deserialize(json, AppSettingsSourceGenerationContext.Default.AppSettings)) ??
|
||||
throw new NullReferenceException(nameof(Models.AppSettings));
|
||||
results = Get(appSettings,
|
||||
results.DriveConfiguration,
|
||||
results.CompassConfiguration,
|
||||
results.DriveConfiguration,
|
||||
results.EAFLogConfiguration,
|
||||
results.EAFProgramDataConfiguration,
|
||||
results.EDADatabaseConfiguration,
|
||||
results.NugetConfiguration,
|
||||
results.IsoConfiguration,
|
||||
results.MetrologyConfiguration,
|
||||
results.NugetConfiguration,
|
||||
results.SerialConfiguration,
|
||||
results.StratusConfiguration,
|
||||
results.TransmissionControlProtocolConfiguration,
|
||||
|
22
Models/IsoConfiguration.cs
Normal file
22
Models/IsoConfiguration.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models;
|
||||
|
||||
public record IsoConfiguration(string DestinationDirectory,
|
||||
string SourceDirectory)
|
||||
{
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, IsoConfigurationSourceGenerationContext.Default.IsoConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(IsoConfiguration))]
|
||||
internal partial class IsoConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -33,6 +33,7 @@ public partial class Worker : BackgroundService
|
||||
{
|
||||
nameof(Helpers.HelperNuget) => Helpers.HelperNuget.Sync(_AppSettings, _Logger),
|
||||
nameof(Helpers.HelperTCP) => Helpers.HelperTCP.ReadWrite(_AppSettings, _Logger),
|
||||
nameof(Helpers.HelperISO) => Helpers.HelperISO.DirectoryToISO(_AppSettings, _Logger),
|
||||
nameof(Helpers.HelperCompass) => Helpers.HelperCompass.CopyFile(_AppSettings, _Logger),
|
||||
nameof(Helpers.HelperStratus) => Helpers.HelperStratus.MoveFile(_AppSettings, _Logger),
|
||||
nameof(Helpers.HelperEAFLog) => Helpers.HelperEAFLog.DeleteFiles(_AppSettings, _Logger),
|
||||
|
Loading…
x
Reference in New Issue
Block a user