mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Add serilog for handling verbose and debug outputs.
This commit is contained in:
@@ -139,15 +139,6 @@ public static class AaruConsole
|
||||
/// <summary>Event to receive writings to the standard output console.</summary>
|
||||
public static event WriteHandler WriteEvent;
|
||||
|
||||
/// <summary>Event to receive writings to the error output console.</summary>
|
||||
public static event ErrorWriteHandler ErrorWriteEvent;
|
||||
|
||||
/// <summary>Event to receive writings to the verbose output console.</summary>
|
||||
public static event VerboseWriteHandler VerboseWriteEvent;
|
||||
|
||||
/// <summary>Event to receive writings to the debug output console.</summary>
|
||||
public static event DebugWriteHandler DebugWriteEvent;
|
||||
|
||||
/// <summary>Event to receive exceptions to write to the debug output console.</summary>
|
||||
public static event WriteExceptionHandler WriteExceptionEvent;
|
||||
|
||||
@@ -185,7 +176,7 @@ public static class AaruConsole
|
||||
/// <param name="arg">An array of objects to write using <paramref name="format" />.</param>
|
||||
public static void DebugWriteLine(string module, string format, params object[] arg)
|
||||
{
|
||||
DebugWriteLineEvent?.Invoke("DEBUG (" + module + "): " + format, arg);
|
||||
DebugWriteLineEvent?.Invoke($"[blue]({module}):[/] {format}", arg);
|
||||
DebugWithModuleWriteLineEvent?.Invoke(module, format, arg);
|
||||
}
|
||||
|
||||
@@ -209,32 +200,6 @@ public static class AaruConsole
|
||||
/// <param name="arg">An array of objects to write using <paramref name="format" />.</param>
|
||||
public static void Write(string format, params object[] arg) => WriteEvent?.Invoke(format, arg);
|
||||
|
||||
/// <summary>
|
||||
/// Writes the text representation of the specified array of objects to the error output console using the
|
||||
/// specified format information.
|
||||
/// </summary>
|
||||
/// <param name="format">A composite format string.</param>
|
||||
/// <param name="arg">An array of objects to write using <paramref name="format" />.</param>
|
||||
public static void ErrorWrite(string format, params object[] arg) => ErrorWriteEvent?.Invoke(format, arg);
|
||||
|
||||
/// <summary>
|
||||
/// Writes the text representation of the specified array of objects to the verbose output console using the
|
||||
/// specified format information.
|
||||
/// </summary>
|
||||
/// <param name="format">A composite format string.</param>
|
||||
/// <param name="arg">An array of objects to write using <paramref name="format" />.</param>
|
||||
public static void VerboseWrite(string format, params object[] arg) => VerboseWriteEvent?.Invoke(format, arg);
|
||||
|
||||
/// <summary>
|
||||
/// Writes the text representation of the specified array of objects to the debug output console using the
|
||||
/// specified format information.
|
||||
/// </summary>
|
||||
/// <param name="module">Description of the module writing to the debug console</param>
|
||||
/// <param name="format">A composite format string.</param>
|
||||
/// <param name="arg">An array of objects to write using <paramref name="format" />.</param>
|
||||
public static void DebugWrite(string module, string format, params object[] arg) =>
|
||||
DebugWriteEvent?.Invoke("DEBUG (" + module + "): " + format, arg);
|
||||
|
||||
/// <summary>Writes the specified string value, followed by the current line terminator, to the standard output console.</summary>
|
||||
/// <param name="value">The value to write.</param>
|
||||
public static void WriteLine(string value) => WriteLineEvent?.Invoke("{0}", value);
|
||||
@@ -251,7 +216,7 @@ public static class AaruConsole
|
||||
/// <param name="module">Description of the module writing to the debug console</param>
|
||||
/// <param name="value">The value to write.</param>
|
||||
public static void DebugWriteLine(string module, string value) =>
|
||||
DebugWriteLineEvent?.Invoke("{0}", "DEBUG (" + module + "): " + value);
|
||||
DebugWriteLineEvent?.Invoke("[blue]({0}):[/] {1}", module, value);
|
||||
|
||||
/// <summary>
|
||||
/// Writes the exception to the debug output console.
|
||||
|
||||
@@ -60,7 +60,7 @@ public sealed partial class Nero
|
||||
var footerV2 = new FooterV2();
|
||||
|
||||
_imageStream.Seek(-8, SeekOrigin.End);
|
||||
var buffer = new byte[8];
|
||||
byte[] buffer = new byte[8];
|
||||
_imageStream.EnsureRead(buffer, 0, 8);
|
||||
footerV1.ChunkId = BigEndianBitConverter.ToUInt32(buffer, 0);
|
||||
footerV1.FirstChunkOffset = BigEndianBitConverter.ToUInt32(buffer, 4);
|
||||
@@ -94,7 +94,7 @@ public sealed partial class Nero
|
||||
_imageNewFormat = true;
|
||||
else
|
||||
{
|
||||
AaruConsole.DebugWrite(MODULE_NAME, Localization.Nero_version_not_recognized);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Nero_version_not_recognized);
|
||||
|
||||
return ErrorNumber.NotSupported;
|
||||
}
|
||||
@@ -105,7 +105,7 @@ public sealed partial class Nero
|
||||
else
|
||||
_imageStream.Seek(footerV1.FirstChunkOffset, SeekOrigin.Begin);
|
||||
|
||||
var parsing = true;
|
||||
bool parsing = true;
|
||||
ushort currentSession = 1;
|
||||
uint currentTrack = 1;
|
||||
|
||||
@@ -115,18 +115,18 @@ public sealed partial class Nero
|
||||
_imageInfo.MediaType = CommonTypes.MediaType.CD;
|
||||
_imageInfo.Sectors = 0;
|
||||
_imageInfo.SectorSize = 0;
|
||||
var oldFormat = false;
|
||||
int currentLba = -150;
|
||||
var corruptedTrackMode = false;
|
||||
bool oldFormat = false;
|
||||
int currentLba = -150;
|
||||
bool corruptedTrackMode = false;
|
||||
|
||||
// Parse chunks
|
||||
while(parsing)
|
||||
{
|
||||
var chunkHeaderBuffer = new byte[8];
|
||||
byte[] chunkHeaderBuffer = new byte[8];
|
||||
|
||||
_imageStream.EnsureRead(chunkHeaderBuffer, 0, 8);
|
||||
var chunkId = BigEndianBitConverter.ToUInt32(chunkHeaderBuffer, 0);
|
||||
var chunkLength = BigEndianBitConverter.ToUInt32(chunkHeaderBuffer, 4);
|
||||
uint chunkId = BigEndianBitConverter.ToUInt32(chunkHeaderBuffer, 0);
|
||||
uint chunkLength = BigEndianBitConverter.ToUInt32(chunkHeaderBuffer, 4);
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME,
|
||||
"ChunkID = 0x{0:X8} (\"{1}\")",
|
||||
@@ -150,9 +150,9 @@ public sealed partial class Nero
|
||||
Entries = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[8];
|
||||
byte[] tmpBuffer = new byte[8];
|
||||
|
||||
for(var i = 0; i < newCuesheetV1.ChunkSize; i += 8)
|
||||
for(int i = 0; i < newCuesheetV1.ChunkSize; i += 8)
|
||||
{
|
||||
var entry = new CueEntryV1();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 8);
|
||||
@@ -226,9 +226,9 @@ public sealed partial class Nero
|
||||
Entries = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[8];
|
||||
byte[] tmpBuffer = new byte[8];
|
||||
|
||||
for(var i = 0; i < newCuesheetV2.ChunkSize; i += 8)
|
||||
for(int i = 0; i < newCuesheetV2.ChunkSize; i += 8)
|
||||
{
|
||||
var entry = new CueEntryV2();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 8);
|
||||
@@ -288,7 +288,7 @@ public sealed partial class Nero
|
||||
ChunkSizeBe = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[22];
|
||||
byte[] tmpBuffer = new byte[22];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 22);
|
||||
_neroDaov1.ChunkSizeLe = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
_neroDaov1.Upc = new byte[14];
|
||||
@@ -316,7 +316,7 @@ public sealed partial class Nero
|
||||
|
||||
tmpBuffer = new byte[30];
|
||||
|
||||
for(var i = 0; i < _neroDaov1.ChunkSizeBe - 22; i += 30)
|
||||
for(int i = 0; i < _neroDaov1.ChunkSizeBe - 22; i += 30)
|
||||
{
|
||||
var entry = new DaoEntryV1();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 30);
|
||||
@@ -423,7 +423,7 @@ public sealed partial class Nero
|
||||
ChunkSizeBe = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[22];
|
||||
byte[] tmpBuffer = new byte[22];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 22);
|
||||
_neroDaov2.ChunkSizeLe = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
_neroDaov2.Upc = new byte[14];
|
||||
@@ -451,7 +451,7 @@ public sealed partial class Nero
|
||||
|
||||
tmpBuffer = new byte[42];
|
||||
|
||||
for(var i = 0; i < _neroDaov2.ChunkSizeBe - 22; i += 42)
|
||||
for(int i = 0; i < _neroDaov2.ChunkSizeBe - 22; i += 42)
|
||||
{
|
||||
var entry = new DaoEntryV2();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 42);
|
||||
@@ -560,9 +560,9 @@ public sealed partial class Nero
|
||||
Packs = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[18];
|
||||
byte[] tmpBuffer = new byte[18];
|
||||
|
||||
for(var i = 0; i < _cdtxt.ChunkSize; i += 18)
|
||||
for(int i = 0; i < _cdtxt.ChunkSize; i += 18)
|
||||
{
|
||||
var entry = new CdTextPack();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 18);
|
||||
@@ -628,9 +628,9 @@ public sealed partial class Nero
|
||||
Tracks = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[12];
|
||||
byte[] tmpBuffer = new byte[12];
|
||||
|
||||
for(var i = 0; i < _taoV0.ChunkSize; i += 12)
|
||||
for(int i = 0; i < _taoV0.ChunkSize; i += 12)
|
||||
{
|
||||
var entry = new TaoEntryV0();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 12);
|
||||
@@ -699,9 +699,9 @@ public sealed partial class Nero
|
||||
Tracks = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[20];
|
||||
byte[] tmpBuffer = new byte[20];
|
||||
|
||||
for(var i = 0; i < _taoV1.ChunkSize; i += 20)
|
||||
for(int i = 0; i < _taoV1.ChunkSize; i += 20)
|
||||
{
|
||||
var entry = new TaoEntryV1();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 20);
|
||||
@@ -781,9 +781,9 @@ public sealed partial class Nero
|
||||
Tracks = []
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[32];
|
||||
byte[] tmpBuffer = new byte[32];
|
||||
|
||||
for(var i = 0; i < _taoV2.ChunkSize; i += 32)
|
||||
for(int i = 0; i < _taoV2.ChunkSize; i += 32)
|
||||
{
|
||||
var entry = new TaoEntryV2();
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 32);
|
||||
@@ -871,9 +871,9 @@ public sealed partial class Nero
|
||||
Localization.Found_SINF_chunk_parsing_0_bytes,
|
||||
chunkLength);
|
||||
|
||||
var tmpBuffer = new byte[4];
|
||||
byte[] tmpBuffer = new byte[4];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 4);
|
||||
var sessionTracks = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
uint sessionTracks = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
_neroSessions.Add(currentSession, sessionTracks);
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME,
|
||||
@@ -898,7 +898,7 @@ public sealed partial class Nero
|
||||
ChunkSize = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[4];
|
||||
byte[] tmpBuffer = new byte[4];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 4);
|
||||
_mediaType.Type = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
|
||||
@@ -924,7 +924,7 @@ public sealed partial class Nero
|
||||
ChunkSize = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[4];
|
||||
byte[] tmpBuffer = new byte[4];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 4);
|
||||
_discInfo.Unknown = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
|
||||
@@ -947,7 +947,7 @@ public sealed partial class Nero
|
||||
ChunkSize = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[4];
|
||||
byte[] tmpBuffer = new byte[4];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 4);
|
||||
_relo.Unknown = BigEndianBitConverter.ToUInt32(tmpBuffer, 0);
|
||||
|
||||
@@ -968,7 +968,7 @@ public sealed partial class Nero
|
||||
ChunkSize = chunkLength
|
||||
};
|
||||
|
||||
var tmpBuffer = new byte[2];
|
||||
byte[] tmpBuffer = new byte[2];
|
||||
_imageStream.EnsureRead(tmpBuffer, 0, 2);
|
||||
_toc.Unknown = BigEndianBitConverter.ToUInt16(tmpBuffer, 0);
|
||||
|
||||
@@ -1060,7 +1060,7 @@ public sealed partial class Nero
|
||||
var currentSessionStruct = new CommonTypes.Structs.Session();
|
||||
ulong partitionSequence = 0;
|
||||
ulong partitionStartByte = 0;
|
||||
var trackCounter = 1;
|
||||
int trackCounter = 1;
|
||||
_trackFlags = new Dictionary<uint, byte>();
|
||||
|
||||
if(currentSessionMaxTrack == 0) currentSessionMaxTrack = 1;
|
||||
@@ -1200,8 +1200,8 @@ public sealed partial class Nero
|
||||
_imageInfo.ReadableSectorTags.Add(SectorTagType.CdTrackIsrc);
|
||||
}
|
||||
|
||||
var rawMode1 = false;
|
||||
var rawMode2 = false;
|
||||
bool rawMode1 = false;
|
||||
bool rawMode2 = false;
|
||||
|
||||
switch((DaoMode)neroTrack.Mode)
|
||||
{
|
||||
@@ -1387,9 +1387,9 @@ public sealed partial class Nero
|
||||
}
|
||||
};
|
||||
|
||||
var rawMode1 = false;
|
||||
var rawMode2 = false;
|
||||
var subSize = 0;
|
||||
bool rawMode1 = false;
|
||||
bool rawMode2 = false;
|
||||
int subSize = 0;
|
||||
|
||||
switch((DaoMode)_neroTracks[1].Mode)
|
||||
{
|
||||
@@ -1549,13 +1549,13 @@ public sealed partial class Nero
|
||||
|
||||
if(_imageInfo.MediaType is CommonTypes.MediaType.Unknown or CommonTypes.MediaType.CD)
|
||||
{
|
||||
var data = false;
|
||||
var mode2 = false;
|
||||
var firstAudio = false;
|
||||
var firstData = false;
|
||||
var audio = false;
|
||||
bool data = false;
|
||||
bool mode2 = false;
|
||||
bool firstAudio = false;
|
||||
bool firstData = false;
|
||||
bool audio = false;
|
||||
|
||||
for(var i = 0; i < _neroTracks.Count; i++)
|
||||
for(int i = 0; i < _neroTracks.Count; i++)
|
||||
{
|
||||
// First track is audio
|
||||
firstAudio |= i == 0 &&
|
||||
@@ -1665,7 +1665,7 @@ public sealed partial class Nero
|
||||
}
|
||||
catch
|
||||
{
|
||||
AaruConsole.DebugWrite(MODULE_NAME, Localization.Exception_occurred_opening_file);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Exception_occurred_opening_file);
|
||||
|
||||
return ErrorNumber.UnexpectedException;
|
||||
}
|
||||
@@ -1749,7 +1749,7 @@ public sealed partial class Nero
|
||||
uint sectorOffset;
|
||||
uint sectorSize;
|
||||
uint sectorSkip;
|
||||
var mode2 = false;
|
||||
bool mode2 = false;
|
||||
|
||||
switch((DaoMode)aaruTrack.Mode)
|
||||
{
|
||||
@@ -1848,9 +1848,9 @@ public sealed partial class Nero
|
||||
|
||||
buffer = br.ReadBytes((int)((sectorSize + sectorSkip) * length));
|
||||
|
||||
for(var i = 0; i < length; i++)
|
||||
for(int i = 0; i < length; i++)
|
||||
{
|
||||
var sector = new byte[sectorSize];
|
||||
byte[] sector = new byte[sectorSize];
|
||||
Array.Copy(buffer, (sectorSize + sectorSkip) * i, sector, 0, sectorSize);
|
||||
sector = Sector.GetUserData(sector);
|
||||
mode2Ms.Write(sector, 0, sector.Length);
|
||||
@@ -1862,7 +1862,7 @@ public sealed partial class Nero
|
||||
buffer = br.ReadBytes((int)(sectorSize * length));
|
||||
else
|
||||
{
|
||||
for(var i = 0; i < length; i++)
|
||||
for(int i = 0; i < length; i++)
|
||||
{
|
||||
br.BaseStream.Seek(sectorOffset, SeekOrigin.Current);
|
||||
byte[] sector = br.ReadBytes((int)sectorSize);
|
||||
@@ -2176,7 +2176,7 @@ public sealed partial class Nero
|
||||
buffer = br.ReadBytes((int)(sectorSize * length));
|
||||
else
|
||||
{
|
||||
for(var i = 0; i < length; i++)
|
||||
for(int i = 0; i < length; i++)
|
||||
{
|
||||
br.BaseStream.Seek(sectorOffset, SeekOrigin.Current);
|
||||
byte[] sector = br.ReadBytes((int)sectorSize);
|
||||
@@ -2287,7 +2287,7 @@ public sealed partial class Nero
|
||||
buffer = br.ReadBytes((int)(sectorSize * length));
|
||||
else
|
||||
{
|
||||
for(var i = 0; i < length; i++)
|
||||
for(int i = 0; i < length; i++)
|
||||
{
|
||||
br.BaseStream.Seek(sectorOffset, SeekOrigin.Current);
|
||||
byte[] sector = br.ReadBytes((int)sectorSize);
|
||||
@@ -2301,8 +2301,8 @@ public sealed partial class Nero
|
||||
{
|
||||
case DaoMode.Data:
|
||||
{
|
||||
var fullSector = new byte[2352];
|
||||
var fullBuffer = new byte[2352 * length];
|
||||
byte[] fullSector = new byte[2352];
|
||||
byte[] fullBuffer = new byte[2352 * length];
|
||||
|
||||
for(uint i = 0; i < length; i++)
|
||||
{
|
||||
@@ -2318,8 +2318,8 @@ public sealed partial class Nero
|
||||
}
|
||||
case DaoMode.DataM2F1:
|
||||
{
|
||||
var fullSector = new byte[2352];
|
||||
var fullBuffer = new byte[2352 * length];
|
||||
byte[] fullSector = new byte[2352];
|
||||
byte[] fullBuffer = new byte[2352 * length];
|
||||
|
||||
for(uint i = 0; i < length; i++)
|
||||
{
|
||||
@@ -2337,8 +2337,8 @@ public sealed partial class Nero
|
||||
}
|
||||
case DaoMode.DataM2F2:
|
||||
{
|
||||
var fullSector = new byte[2352];
|
||||
var fullBuffer = new byte[2352 * length];
|
||||
byte[] fullSector = new byte[2352];
|
||||
byte[] fullBuffer = new byte[2352 * length];
|
||||
|
||||
for(uint i = 0; i < length; i++)
|
||||
{
|
||||
|
||||
@@ -75,6 +75,8 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite"/>
|
||||
<PackageReference Include="Serilog"/>
|
||||
<PackageReference Include="Serilog.Sinks.Spectre"/>
|
||||
<PackageReference Include="Spectre.Console"/>
|
||||
<PackageReference Include="Spectre.Console.Cli"/>
|
||||
<PackageReference Include="System.Text.Encoding.CodePages"/>
|
||||
|
||||
@@ -58,35 +58,6 @@ sealed class ArchiveExtractCommand : Command<ArchiveExtractCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("archive-extract");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class ArchiveInfoCommand : Command<ArchiveInfoCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("archive-info");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "debug={0}", settings.Debug);
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class ArchiveListCommand : Command<ArchiveListCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(Markup.Escape(format));
|
||||
else
|
||||
stderrConsole.MarkupLine(Markup.Escape(format), objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--encoding={0}", Markup.Escape(settings.Encoding ?? ""));
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--long-format={0}", settings.LongFormat);
|
||||
|
||||
@@ -45,35 +45,6 @@ sealed class ConfigureCommand : Command<ConfigureCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
return DoConfigure(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,35 +49,6 @@ sealed class StatisticsCommand : Command<StatisticsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
var ctx = AaruContext.Create(Aaru.Settings.Settings.LocalDbPath);
|
||||
|
||||
if(!ctx.Commands.Any() &&
|
||||
|
||||
@@ -41,7 +41,6 @@ using Aaru.Core;
|
||||
using Aaru.Database;
|
||||
using Aaru.Localization;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Cli;
|
||||
|
||||
namespace Aaru.Commands.Database;
|
||||
@@ -55,35 +54,6 @@ sealed class UpdateCommand : AsyncCommand<UpdateCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => stderrConsole.WriteException(ex);
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", settings.Verbose);
|
||||
|
||||
|
||||
@@ -64,35 +64,6 @@ sealed class DeviceReportCommand : AsyncCommand<DeviceReportCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("device-report");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -70,35 +70,6 @@ sealed class DeviceInfoCommand : Command<DeviceInfoCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("device-info");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -52,35 +52,6 @@ sealed class ListDevicesCommand : Command<ListDevicesCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("list-devices");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -59,35 +59,6 @@ sealed class ExtractFilesCommand : Command<ExtractFilesCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("extract-files");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -55,35 +55,6 @@ sealed class FilesystemInfoCommand : Command<FilesystemInfoCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("fs-info");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -56,35 +56,6 @@ sealed class LsCommand : Command<LsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(Markup.Escape(format));
|
||||
else
|
||||
stderrConsole.MarkupLine(Markup.Escape(format), objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--encoding={0}", Markup.Escape(settings.Encoding ?? ""));
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--input={0}", Markup.Escape(settings.ImagePath ?? ""));
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class ListOptionsCommand : Command<ListOptionsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", settings.Verbose);
|
||||
Statistics.AddCommand("list-options");
|
||||
|
||||
@@ -51,35 +51,6 @@ sealed class FormatsCommand : Command<FormatsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("formats");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -58,35 +58,6 @@ sealed class ChecksumCommand : Command<ChecksumCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("checksum");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--adler32={0}", settings.Adler32);
|
||||
|
||||
@@ -57,35 +57,6 @@ sealed class CompareCommand : Command<CompareCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("compare");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -71,35 +71,6 @@ sealed class ConvertImageCommand : Command<ConvertImageCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
bool fixSubchannel = settings.FixSubchannel;
|
||||
bool fixSubchannelCrc = settings.FixSubchannelCrc;
|
||||
bool fixSubchannelPosition = settings.FixSubchannelPosition;
|
||||
|
||||
@@ -60,35 +60,6 @@ sealed class CreateSidecarCommand : Command<CreateSidecarCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("create-sidecar");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--block-size={0}", settings.BlockSize);
|
||||
|
||||
@@ -54,35 +54,6 @@ sealed class DecodeCommand : Command<DecodeCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("decode");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -52,35 +52,6 @@ sealed class EntropyCommand : Command<EntropyCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("entropy");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -51,35 +51,6 @@ sealed class ImageInfoCommand : Command<ImageInfoCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("image-info");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class ListOptionsCommand : Command<ListOptionsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", settings.Verbose);
|
||||
Statistics.AddCommand("list-options");
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class PrintHexCommand : Command<PrintHexCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("print-hex");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
@@ -219,9 +190,11 @@ sealed class PrintHexCommand : Command<PrintHexCommand.Settings>
|
||||
});
|
||||
|
||||
if(errno == ErrorNumber.NoError)
|
||||
{
|
||||
AaruConsole.WriteLine(Markup.Escape(PrintHex.ByteArrayToHexArrayString(sector,
|
||||
settings.Width,
|
||||
true)));
|
||||
}
|
||||
else
|
||||
AaruConsole.ErrorWriteLine(string.Format(UI.Error_0_reading_sector_1, errno, settings.Start + i));
|
||||
}
|
||||
|
||||
@@ -57,35 +57,6 @@ sealed class VerifyCommand : Command<VerifyCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("verify");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
@@ -226,9 +197,11 @@ sealed class VerifyCommand : Command<VerifyCommand.Settings>
|
||||
opticalMediaImage.Info.Sectors);
|
||||
}
|
||||
else if(settings.CreateGraph)
|
||||
{
|
||||
mediaGraph = new BlockMap((int)settings.Dimensions,
|
||||
(int)settings.Dimensions,
|
||||
opticalMediaImage.Info.Sectors);
|
||||
}
|
||||
|
||||
List<Track> inputTracks = opticalMediaImage.Tracks;
|
||||
ulong currentSectorAll = 0;
|
||||
@@ -427,18 +400,16 @@ sealed class VerifyCommand : Command<VerifyCommand.Settings>
|
||||
if(failingLbas.Count == (int)inputFormat.Info.Sectors)
|
||||
AaruConsole.VerboseWriteLine($"\t[red]{UI.all_sectors}[/]");
|
||||
else
|
||||
{
|
||||
foreach(ulong t in failingLbas) AaruConsole.VerboseWriteLine("\t{0}", t);
|
||||
}
|
||||
foreach(ulong t in failingLbas)
|
||||
AaruConsole.VerboseWriteLine("\t{0}", t);
|
||||
|
||||
AaruConsole.WriteLine($"[yellow3_1]{UI.LBAs_without_checksum}[/]");
|
||||
|
||||
if(unknownLbas.Count == (int)inputFormat.Info.Sectors)
|
||||
AaruConsole.VerboseWriteLine($"\t[yellow3_1]{UI.all_sectors}[/]");
|
||||
else
|
||||
{
|
||||
foreach(ulong t in unknownLbas) AaruConsole.VerboseWriteLine("\t{0}", t);
|
||||
}
|
||||
foreach(ulong t in unknownLbas)
|
||||
AaruConsole.VerboseWriteLine("\t{0}", t);
|
||||
}
|
||||
|
||||
// TODO: Convert to table
|
||||
|
||||
@@ -50,35 +50,6 @@ sealed class ListEncodingsCommand : Command<ListEncodingsCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("list-encodings");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -51,35 +51,6 @@ sealed class ListNamespacesCommand : Command<ListNamespacesCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", settings.Verbose);
|
||||
Statistics.AddCommand("list-namespaces");
|
||||
|
||||
@@ -72,36 +72,6 @@ sealed class DumpMediaCommand : Command<DumpMediaCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
bool fixSubchannel = settings.FixSubchannel;
|
||||
bool fixSubchannelCrc = settings.FixSubchannelCrc;
|
||||
bool fixSubchannelPosition = settings.FixSubchannelPosition;
|
||||
|
||||
@@ -71,35 +71,6 @@ sealed class MediaInfoCommand : Command<MediaInfoCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("media-info");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "debug={0}", settings.Debug);
|
||||
|
||||
@@ -53,35 +53,6 @@ sealed class MediaScanCommand : Command<MediaScanCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("media-scan");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", settings.Debug);
|
||||
|
||||
@@ -51,35 +51,6 @@ sealed class RemoteCommand : Command<RemoteCommand.Settings>
|
||||
{
|
||||
MainClass.PrintCopyright();
|
||||
|
||||
if(settings.Debug)
|
||||
{
|
||||
IAnsiConsole stderrConsole = AnsiConsole.Create(new AnsiConsoleSettings
|
||||
{
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => { stderrConsole.WriteException(ex); };
|
||||
}
|
||||
|
||||
if(settings.Verbose)
|
||||
{
|
||||
AaruConsole.WriteEvent += (format, objects) =>
|
||||
{
|
||||
if(objects is null)
|
||||
AnsiConsole.Markup(format);
|
||||
else
|
||||
AnsiConsole.Markup(format, objects);
|
||||
};
|
||||
}
|
||||
|
||||
Statistics.AddCommand("remote");
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, "debug={0}", settings.Debug);
|
||||
|
||||
31
Aaru/LogLevelInterceptor.cs
Normal file
31
Aaru/LogLevelInterceptor.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Aaru.Commands;
|
||||
using Serilog;
|
||||
using Serilog.Core;
|
||||
using Serilog.Events;
|
||||
using Spectre.Console.Cli;
|
||||
|
||||
public class LogLevelInterceptor : ICommandInterceptor
|
||||
{
|
||||
private readonly LoggingLevelSwitch _levelSwitch;
|
||||
|
||||
public LogLevelInterceptor(LoggingLevelSwitch levelSwitch) => _levelSwitch = levelSwitch;
|
||||
|
||||
#region ICommandInterceptor Members
|
||||
|
||||
public void Intercept(CommandContext context, CommandSettings settings)
|
||||
{
|
||||
if(settings is BaseSettings global)
|
||||
{
|
||||
if(global.Debug)
|
||||
_levelSwitch.MinimumLevel = LogEventLevel.Debug;
|
||||
else if(global.Verbose)
|
||||
_levelSwitch.MinimumLevel = LogEventLevel.Verbose;
|
||||
else
|
||||
_levelSwitch.MinimumLevel = LogEventLevel.Information;
|
||||
|
||||
Log.Information("Log level set to {Level}", _levelSwitch.MinimumLevel);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
24
Aaru/Main.cs
24
Aaru/Main.cs
@@ -52,6 +52,9 @@ using Aaru.Localization;
|
||||
using Aaru.Settings;
|
||||
using JetBrains.Annotations;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Serilog;
|
||||
using Serilog.Core;
|
||||
using Serilog.Sinks.Spectre;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Cli;
|
||||
using ListOptionsCommand = Aaru.Commands.Filesystem.ListOptionsCommand;
|
||||
@@ -71,6 +74,15 @@ class MainClass
|
||||
Out = new AnsiConsoleOutput(System.Console.Error)
|
||||
});
|
||||
|
||||
var levelSwitch = new LoggingLevelSwitch();
|
||||
|
||||
Log.Logger = new LoggerConfiguration().MinimumLevel.ControlledBy(levelSwitch)
|
||||
.WriteTo
|
||||
.Spectre("[{Timestamp:HH:mm:ss} {Level:u3}{Module}] {Message:lj}{NewLine}{Exception}",
|
||||
levelSwitch: levelSwitch,
|
||||
renderTextAsMarkup: true)
|
||||
.CreateLogger();
|
||||
|
||||
object[] attributes = typeof(MainClass).Assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
|
||||
_assemblyTitle = ((AssemblyTitleAttribute)attributes[0]).Title;
|
||||
attributes = typeof(MainClass).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||
@@ -106,8 +118,16 @@ class MainClass
|
||||
stderrConsole.MarkupLine(format);
|
||||
else
|
||||
stderrConsole.MarkupLine(format, objects);
|
||||
|
||||
Log.Error(format, objects);
|
||||
};
|
||||
|
||||
AaruConsole.VerboseWriteLineEvent += Log.Verbose;
|
||||
|
||||
AaruConsole.DebugWriteLineEvent += Log.Debug;
|
||||
|
||||
AaruConsole.WriteExceptionEvent += ex => Log.Error(ex, "Unhandled exception");
|
||||
|
||||
Settings.Settings.LoadSettings();
|
||||
|
||||
AaruContext ctx = null;
|
||||
@@ -385,9 +405,9 @@ class MainClass
|
||||
.WithDescription(UI.List_Namespaces_Command_Description);
|
||||
|
||||
config.AddCommand<RemoteCommand>("remote").WithAlias("rem").WithDescription(UI.Remote_Command_Description);
|
||||
});
|
||||
|
||||
PrintCopyright();
|
||||
config.SetInterceptor(new LogLevelInterceptor(levelSwitch));
|
||||
});
|
||||
|
||||
int ret = await app.RunAsync(args);
|
||||
|
||||
|
||||
@@ -1,69 +1,71 @@
|
||||
<Project ToolsVersion="15.0">
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha9" />
|
||||
<PackageVersion Include="Aaru.Compression.Native" Version="6.0.0-alpha.10" />
|
||||
<PackageVersion Include="AsyncFixer" Version="1.6.0" />
|
||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.3" />
|
||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.3" />
|
||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.3" />
|
||||
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.3.3" />
|
||||
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.3.3" />
|
||||
<PackageVersion Include="Avalonia" Version="11.3.3" />
|
||||
<PackageVersion Include="Claunia.Encoding" Version="1.9.2" />
|
||||
<PackageVersion Include="Claunia.RsrcFork" Version="1.2.0" />
|
||||
<PackageVersion Include="DotNetZip" Version="1.16.0" />
|
||||
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2" />
|
||||
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2" />
|
||||
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1" />
|
||||
<PackageVersion Include="FluentAssertions" Version="8.6.0" />
|
||||
<PackageVersion Include="Humanizer.Core" Version="2.14.1" />
|
||||
<PackageVersion Include="Humanizer" Version="2.14.1" />
|
||||
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.0" />
|
||||
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0" />
|
||||
<PackageVersion Include="MessageBox.Avalonia" Version="3.2.0" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
|
||||
<PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" />
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageVersion Include="NUnit.Analyzers" Version="4.10.0" />
|
||||
<PackageVersion Include="nunit" Version="4.4.0" />
|
||||
<PackageVersion Include="NUnit3TestAdapter" Version="5.1.0" />
|
||||
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.8.0" />
|
||||
<PackageVersion Include="plist-cil" Version="2.3.1" />
|
||||
<PackageVersion Include="Roslynator.Analyzers" Version="4.14.0" />
|
||||
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.14.0" />
|
||||
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.14.0" />
|
||||
<PackageVersion Include="SharpCompress" Version="0.40.0" />
|
||||
<PackageVersion Include="SkiaSharp" Version="2.88.8" />
|
||||
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
|
||||
<PackageVersion Include="Spectre.Console.Analyzer" Version="1.0.0" />
|
||||
<PackageVersion Include="Spectre.Console" Version="0.50.0" />
|
||||
<PackageVersion Include="Spectre.Console.Cli" Version="0.50.0" />
|
||||
<PackageVersion Include="System.Collections" Version="4.3.0" />
|
||||
<PackageVersion Include="System.ComponentModel.Annotations" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageVersion Include="System.Diagnostics.Debug" Version="4.3.0" />
|
||||
<PackageVersion Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
|
||||
<PackageVersion Include="System.IO.FileSystem" Version="4.3.0" />
|
||||
<PackageVersion Include="System.Management" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="System.Memory" Version="4.6.3" />
|
||||
<PackageVersion Include="System.Net.Primitives" Version="4.3.1" />
|
||||
<PackageVersion Include="System.Resources.Extensions" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="System.Runtime.Extensions" Version="4.3.1" />
|
||||
<PackageVersion Include="System.Runtime.Handles" Version="4.3.0" />
|
||||
<PackageVersion Include="System.Runtime.InteropServices" Version="4.3.0" />
|
||||
<PackageVersion Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5" />
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="System.Text.Json" Version="10.0.0-preview.7.25380.108" />
|
||||
<PackageVersion Include="System.ValueTuple" Version="4.6.1" />
|
||||
<PackageVersion Include="Text.Analyzers" Version="4.14.0" />
|
||||
<PackageVersion Include="Unclassified.NetRevisionTask" Version="0.4.4" />
|
||||
<PackageVersion Update="Packaging.Targets" Version="0.1.226" />
|
||||
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha9"/>
|
||||
<PackageVersion Include="Aaru.Compression.Native" Version="6.0.0-alpha.10"/>
|
||||
<PackageVersion Include="AsyncFixer" Version="1.6.0"/>
|
||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.3"/>
|
||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.3"/>
|
||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.3"/>
|
||||
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.3.3"/>
|
||||
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.3.3"/>
|
||||
<PackageVersion Include="Avalonia" Version="11.3.3"/>
|
||||
<PackageVersion Include="Claunia.Encoding" Version="1.9.2"/>
|
||||
<PackageVersion Include="Claunia.RsrcFork" Version="1.2.0"/>
|
||||
<PackageVersion Include="DotNetZip" Version="1.16.0"/>
|
||||
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2"/>
|
||||
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2"/>
|
||||
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1"/>
|
||||
<PackageVersion Include="FluentAssertions" Version="8.6.0"/>
|
||||
<PackageVersion Include="Humanizer.Core" Version="2.14.1"/>
|
||||
<PackageVersion Include="Humanizer" Version="2.14.1"/>
|
||||
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.0"/>
|
||||
<PackageVersion Include="Macross.Json.Extensions" Version="3.0.0"/>
|
||||
<PackageVersion Include="MessageBox.Avalonia" Version="3.2.0"/>
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4"/>
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1"/>
|
||||
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15"/>
|
||||
<PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5"/>
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3"/>
|
||||
<PackageVersion Include="NUnit.Analyzers" Version="4.10.0"/>
|
||||
<PackageVersion Include="nunit" Version="4.4.0"/>
|
||||
<PackageVersion Include="NUnit3TestAdapter" Version="5.1.0"/>
|
||||
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.8.0"/>
|
||||
<PackageVersion Include="plist-cil" Version="2.3.1"/>
|
||||
<PackageVersion Include="Roslynator.Analyzers" Version="4.14.0"/>
|
||||
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.14.0"/>
|
||||
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.14.0"/>
|
||||
<PackageVersion Include="Serilog" Version="4.3.0"/>
|
||||
<PackageVersion Include="Serilog.Sinks.Spectre" Version="0.5.0"/>
|
||||
<PackageVersion Include="SharpCompress" Version="0.40.0"/>
|
||||
<PackageVersion Include="SkiaSharp" Version="2.88.8"/>
|
||||
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31"/>
|
||||
<PackageVersion Include="Spectre.Console.Analyzer" Version="1.0.0"/>
|
||||
<PackageVersion Include="Spectre.Console" Version="0.50.0"/>
|
||||
<PackageVersion Include="Spectre.Console.Cli" Version="0.50.0"/>
|
||||
<PackageVersion Include="System.Collections" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.ComponentModel.Annotations" Version="6.0.0-preview.4.21253.7"/>
|
||||
<PackageVersion Include="System.Diagnostics.Debug" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.IO.FileSystem.Primitives" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.IO.FileSystem" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.Management" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="System.Memory" Version="4.6.3"/>
|
||||
<PackageVersion Include="System.Net.Primitives" Version="4.3.1"/>
|
||||
<PackageVersion Include="System.Resources.Extensions" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="System.Runtime.Extensions" Version="4.3.1"/>
|
||||
<PackageVersion Include="System.Runtime.Handles" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.Runtime.InteropServices" Version="4.3.0"/>
|
||||
<PackageVersion Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5"/>
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="System.Text.Json" Version="10.0.0-preview.7.25380.108"/>
|
||||
<PackageVersion Include="System.ValueTuple" Version="4.6.1"/>
|
||||
<PackageVersion Include="Text.Analyzers" Version="4.14.0"/>
|
||||
<PackageVersion Include="Unclassified.NetRevisionTask" Version="0.4.4"/>
|
||||
<PackageVersion Update="Packaging.Targets" Version="0.1.226"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user