Move commands to families.

This commit is contained in:
2020-01-03 17:41:19 +00:00
parent ba599df172
commit 684122e94c
30 changed files with 373 additions and 111 deletions

View File

@@ -3,8 +3,10 @@
<component name="ContentModelStore">
<e p="$APPLICATION_CONFIG_DIR$/consoles/db" t="IncludeRecursive" />
<e p="$APPLICATION_PLUGINS_DIR$/puppet/lib/stubs" t="IncludeRecursive" />
<e p="$APPLICATION_CONFIG_DIR$/scratches" t="IncludeRecursive" />
<e p="$USER_HOME$/.Rider2019.3/system/extResources" t="IncludeRecursive" />
<e p="$USER_HOME$/.Rider2019.3/system/resharper-host/local/Transient/ReSharperHost/v193/SolutionCaches/_DiscImageChef.-1491758497.00" t="ExcludeRecursive" />
<e p="$USER_HOME$/.config/git/ignore" t="IncludeRecursive" />
<e p="$USER_HOME$/.nuget/packages/sqlitepclraw.lib.e_sqlite3.linux/1.1.12/runtimes/linux-x64/native/libe_sqlite3.so" t="Include" />
<e p="$PROJECT_DIR$" t="IncludeFlat">
<e p=".git/info/exclude" t="IncludeRecursive" />
@@ -24,33 +26,48 @@
<e p="Changelog.md" t="Include" />
<e p="DiscImageChef" t="IncludeRecursive">
<e p="Commands" t="Include">
<e p="Analyze.cs" t="Include" />
<e p="Benchmark.cs" t="Include" />
<e p="Configure.cs" t="Include" />
<e p="Database" t="Include">
<e p="DatabaseFamily.cs" t="Include" />
<e p="Statistics.cs" t="Include" />
<e p="Update.cs" t="Include" />
</e>
<e p="Device" t="Include">
<e p="DeviceFamily.cs" t="Include" />
<e p="DeviceInfo.cs" t="Include" />
<e p="DeviceReport.cs" t="Include" />
<e p="ListDevices.cs" t="Include" />
</e>
<e p="Filesystem" t="Include">
<e p="ExtractFiles.cs" t="Include" />
<e p="FilesystemFamily.cs" t="Include" />
<e p="ListOptions.cs" t="Include" />
<e p="Ls.cs" t="Include" />
</e>
<e p="Formats.cs" t="Include" />
<e p="Image" t="Include">
<e p="Analyze.cs" t="Include" />
<e p="Checksum.cs" t="Include" />
<e p="Compare.cs" t="Include" />
<e p="Configure.cs" t="Include" />
<e p="ConvertImage.cs" t="Include" />
<e p="CreateSidecar.cs" t="Include" />
<e p="Decode.cs" t="Include" />
<e p="DeviceInfo.cs" t="Include" />
<e p="DeviceReport.cs" t="Include" />
<e p="DumpMedia.cs" t="Include" />
<e p="Entropy.cs" t="Include" />
<e p="ExtractFiles.cs" t="Include" />
<e p="Formats.cs" t="Include" />
<e p="ImageFamily.cs" t="Include" />
<e p="ImageInfo.cs" t="Include" />
<e p="ListDevices.cs" t="Include" />
<e p="PrintHex.cs" t="Include" />
<e p="Verify.cs" t="Include" />
</e>
<e p="ListEncodings.cs" t="Include" />
<e p="ListNamespaces.cs" t="Include" />
<e p="ListOptions.cs" t="Include" />
<e p="Ls.cs" t="Include" />
<e p="Media" t="Include">
<e p="DumpMedia.cs" t="Include" />
<e p="MediaFamily.cs" t="Include" />
<e p="MediaInfo.cs" t="Include" />
<e p="MediaScan.cs" t="Include" />
<e p="PrintHex.cs" t="Include" />
</e>
<e p="Remote.cs" t="Include" />
<e p="Statistics.cs" t="Include" />
<e p="Update.cs" t="Include" />
<e p="Verify.cs" t="Include" />
</e>
<e p="DiscImageChef.csproj" t="IncludeRecursive" />
<e p="Info.plist" t="Include" />

View File

@@ -199,6 +199,7 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=cicm/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Claunia/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DDCD/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Deinterleave/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dicremote/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Drive_0027s/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dvdr/@EntryIndexedValue">True</s:Boolean>

View File

@@ -0,0 +1,48 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : DatabaseFamily.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Verbs.
//
// --[ Description ] ----------------------------------------------------------
//
// Implements the 'database' verb.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
using System.CommandLine;
namespace DiscImageChef.Commands.Filesystem
{
public class DatabaseFamily : Command
{
public DatabaseFamily(bool masterDbUpdate) : base("database",
"Commands to manage the device and statistics database")
{
AddAlias("db");
AddCommand(new StatisticsCommand());
AddCommand(new UpdateCommand(masterDbUpdate));
}
}
}

View File

@@ -0,0 +1,49 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : DeviceFamily.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Verbs.
//
// --[ Description ] ----------------------------------------------------------
//
// Implements the 'image' verb.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
using System.CommandLine;
namespace DiscImageChef.Commands.Device
{
public class DeviceFamily : Command
{
public DeviceFamily() : base("device", "Commands that talks to devices")
{
AddAlias("d");
AddAlias("dev");
AddCommand(new DeviceInfoCommand());
AddCommand(new DeviceReportCommand());
AddCommand(new ListDevicesCommand());
}
}
}

View File

@@ -46,10 +46,9 @@ using DiscImageChef.Decoders.SCSI.MMC;
using DiscImageChef.Decoders.SCSI.SSC;
using DiscImageChef.Devices;
using Command = System.CommandLine.Command;
using Device = DiscImageChef.Devices.Device;
using DeviceInfo = DiscImageChef.Core.Devices.Info.DeviceInfo;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Device
{
internal class DeviceInfoCommand : Command
{
@@ -94,11 +93,11 @@ namespace DiscImageChef.Commands
char.IsLetter(devicePath[0]))
devicePath = "\\\\.\\" + char.ToUpper(devicePath[0]) + ':';
Device dev;
Devices.Device dev;
try
{
dev = new Device(devicePath);
dev = new Devices.Device(devicePath);
if(dev.IsRemote)
Statistics.AddRemote(dev.RemoteApplication, dev.RemoteVersion, dev.RemoteOperatingSystem,

View File

@@ -48,10 +48,9 @@ using DiscImageChef.Decoders.SCSI;
using DiscImageChef.Devices;
using Newtonsoft.Json;
using Command = System.CommandLine.Command;
using Device = DiscImageChef.Devices.Device;
using DeviceReport = DiscImageChef.Core.Devices.Report.DeviceReport;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Device
{
internal class DeviceReportCommand : Command
{
@@ -88,11 +87,11 @@ namespace DiscImageChef.Commands
char.IsLetter(devicePath[0]))
devicePath = "\\\\.\\" + char.ToUpper(devicePath[0]) + ':';
Device dev;
Devices.Device dev;
try
{
dev = new Device(devicePath);
dev = new Devices.Device(devicePath);
if(dev.IsRemote)
Statistics.AddRemote(dev.RemoteApplication, dev.RemoteVersion, dev.RemoteOperatingSystem,

View File

@@ -67,8 +67,9 @@ namespace DiscImageChef.Commands
DicConsole.DebugWriteLine("List-Devices command", "--debug={0}", debug);
DicConsole.DebugWriteLine("List-Devices command", "--verbose={0}", verbose);
DeviceInfo[] devices = Device.ListDevices(out bool isRemote, out string serverApplication,
out string serverVersion, out string serverOperatingSystem,
DeviceInfo[] devices = Devices.Device.ListDevices(out bool isRemote, out string serverApplication,
out string serverVersion,
out string serverOperatingSystem,
out string serverOperatingSystemVersion,
out string serverArchitecture, dicRemoteHost);

View File

@@ -97,8 +97,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool debug, bool verbose, string encoding, bool xattrs, string imagePath, string @namespace,
string outputDir, string options)
public static int Invoke(bool debug, bool verbose, string encoding, bool xattrs, string imagePath,
string @namespace, string outputDir, string options)
{
MainClass.PrintCopyright();

View File

@@ -0,0 +1,49 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : FilesystemFamily.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Verbs.
//
// --[ Description ] ----------------------------------------------------------
//
// Implements the 'image' verb.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
using System.CommandLine;
namespace DiscImageChef.Commands.Filesystem
{
public class FilesystemFamily : Command
{
public FilesystemFamily() : base("filesystem", "Commands to manage filesystems")
{
AddAlias("fi");
AddAlias("fs");
AddCommand(new ListOptionsCommand());
AddCommand(new ExtractFilesCommand());
AddCommand(new LsCommand());
}
}
}

View File

@@ -41,7 +41,7 @@ using DiscImageChef.CommonTypes.Interfaces;
using DiscImageChef.Console;
using DiscImageChef.Core;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class AnalyzeCommand : Command
{
@@ -80,7 +80,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(typeof(AnalyzeCommand).GetMethod(nameof(Invoke)));
}
public static int Invoke(bool verbose, bool debug, string encoding, bool filesystems, bool partitions, string imagePath)
public static int Invoke(bool verbose, bool debug, string encoding, bool filesystems, bool partitions,
string imagePath)
{
MainClass.PrintCopyright();

View File

@@ -42,7 +42,7 @@ using DiscImageChef.Console;
using DiscImageChef.Core;
using Schemas;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class ChecksumCommand : Command
{

View File

@@ -43,7 +43,7 @@ using DiscImageChef.Console;
using DiscImageChef.Core;
using ImageInfo = DiscImageChef.CommonTypes.Structs.ImageInfo;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class CompareCommand : Command
{

View File

@@ -48,7 +48,7 @@ using Schemas;
using ImageInfo = DiscImageChef.CommonTypes.Structs.ImageInfo;
using Version = DiscImageChef.CommonTypes.Interop.Version;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class ConvertImageCommand : Command
{
@@ -193,9 +193,9 @@ namespace DiscImageChef.Commands
public static int Invoke(bool verbose, bool debug, string cicmXml, string comments, int count, string creator,
string driveFirmwareRevision, string driveManufacturer, string driveModel,
string driveSerialNumber, bool force, string inputPath, int lastMediaSequence,
string mediaBarcode, string mediaManufacturer, string mediaModel, string mediaPartNumber,
int mediaSequence, string mediaSerialNumber, string mediaTitle, string outputPath,
string outputOptions, string resumeFile, string format)
string mediaBarcode, string mediaManufacturer, string mediaModel,
string mediaPartNumber, int mediaSequence, string mediaSerialNumber, string mediaTitle,
string outputPath, string outputOptions, string resumeFile, string format)
{
MainClass.PrintCopyright();

View File

@@ -45,7 +45,7 @@ using DiscImageChef.Console;
using DiscImageChef.Core;
using Schemas;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class CreateSidecarCommand : Command
{
@@ -85,7 +85,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool debug, bool verbose, uint blockSize, string encodingName, string imagePath, bool tape)
public static int Invoke(bool debug, bool verbose, uint blockSize, string encodingName, string imagePath,
bool tape)
{
MainClass.PrintCopyright();

View File

@@ -41,7 +41,7 @@ using DiscImageChef.Decoders.ATA;
using DiscImageChef.Decoders.CD;
using DiscImageChef.Decoders.SCSI;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class DecodeCommand : Command
{
@@ -87,8 +87,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool verbose, bool debug, bool diskTags, string imagePath, string length, bool sectorTags,
ulong startSector)
public static int Invoke(bool verbose, bool debug, bool diskTags, string imagePath, string length,
bool sectorTags, ulong startSector)
{
MainClass.PrintCopyright();

View File

@@ -38,7 +38,7 @@ using DiscImageChef.CommonTypes.Interfaces;
using DiscImageChef.Console;
using DiscImageChef.Core;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class EntropyCommand : Command
{
@@ -76,8 +76,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool debug, bool verbose, bool duplicatedSectors, string imagePath, bool separatedTracks,
bool wholeDisc)
public static int Invoke(bool debug, bool verbose, bool duplicatedSectors, string imagePath,
bool separatedTracks, bool wholeDisc)
{
MainClass.PrintCopyright();

View File

@@ -0,0 +1,55 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : ImageFamily.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Verbs.
//
// --[ Description ] ----------------------------------------------------------
//
// Implements the 'image' verb.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
using System.CommandLine;
namespace DiscImageChef.Commands.Image
{
public class ImageFamily : Command
{
public ImageFamily() : base("image", "Commands to manage images")
{
AddAlias("i");
AddCommand(new AnalyzeCommand());
AddCommand(new ChecksumCommand());
AddCommand(new CompareCommand());
AddCommand(new ConvertImageCommand());
AddCommand(new CreateSidecarCommand());
AddCommand(new DecodeCommand());
AddCommand(new EntropyCommand());
AddCommand(new ImageInfoCommand());
AddCommand(new PrintHexCommand());
AddCommand(new VerifyCommand());
}
}
}

View File

@@ -39,7 +39,7 @@ using DiscImageChef.CommonTypes.Interfaces;
using DiscImageChef.Console;
using DiscImageChef.Core;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class ImageInfoCommand : Command
{

View File

@@ -38,7 +38,7 @@ using DiscImageChef.CommonTypes.Interfaces;
using DiscImageChef.Console;
using DiscImageChef.Core;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class PrintHexCommand : Command
{
@@ -84,8 +84,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool debug, bool verbose, string imagePath, ulong length, bool longSectors, ulong startSector,
ushort widthBytes)
public static int Invoke(bool debug, bool verbose, string imagePath, ulong length, bool longSectors,
ulong startSector, ushort widthBytes)
{
MainClass.PrintCopyright();

View File

@@ -41,7 +41,7 @@ using DiscImageChef.CommonTypes.Structs;
using DiscImageChef.Console;
using DiscImageChef.Core;
namespace DiscImageChef.Commands
namespace DiscImageChef.Commands.Image
{
internal class VerifyCommand : Command
{
@@ -71,7 +71,8 @@ namespace DiscImageChef.Commands
Handler = CommandHandler.Create(GetType().GetMethod(nameof(Invoke)));
}
public static int Invoke(bool debug, bool verbose, string imagePath, bool verifyDisc = true, bool verifySectors = true)
public static int Invoke(bool debug, bool verbose, string imagePath, bool verifyDisc = true,
bool verifySectors = true)
{
MainClass.PrintCopyright();

View File

@@ -275,11 +275,11 @@ namespace DiscImageChef.Commands
char.IsLetter(devicePath[0]))
devicePath = "\\\\.\\" + char.ToUpper(devicePath[0]) + ':';
Device dev;
Devices.Device dev;
try
{
dev = new Device(devicePath);
dev = new Devices.Device(devicePath);
if(dev.IsRemote)
Statistics.AddRemote(dev.RemoteApplication, dev.RemoteVersion, dev.RemoteOperatingSystem,

View File

@@ -0,0 +1,48 @@
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : MediaFamily.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Verbs.
//
// --[ Description ] ----------------------------------------------------------
//
// Implements the 'media' verb.
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
using System.CommandLine;
namespace DiscImageChef.Commands.Media
{
public class MediaFamily : Command
{
public MediaFamily() : base("media", "Commands to manage media inserted in devices")
{
AddAlias("m");
AddCommand(new DumpMediaCommand());
AddCommand(new MediaInfoCommand());
AddCommand(new MediaScanCommand());
}
}
}

View File

@@ -55,7 +55,6 @@ using BCA = DiscImageChef.Decoders.Bluray.BCA;
using Cartridge = DiscImageChef.Decoders.DVD.Cartridge;
using Command = System.CommandLine.Command;
using DDS = DiscImageChef.Decoders.DVD.DDS;
using Device = DiscImageChef.Devices.Device;
using DMI = DiscImageChef.Decoders.Xbox.DMI;
using Session = DiscImageChef.Decoders.CD.Session;
using Spare = DiscImageChef.Decoders.DVD.Spare;
@@ -105,11 +104,11 @@ namespace DiscImageChef.Commands
char.IsLetter(devicePath[0]))
devicePath = "\\\\.\\" + char.ToUpper(devicePath[0]) + ':';
Device dev;
Devices.Device dev;
try
{
dev = new Device(devicePath);
dev = new Devices.Device(devicePath);
if(dev.IsRemote)
Statistics.AddRemote(dev.RemoteApplication, dev.RemoteVersion, dev.RemoteOperatingSystem,
@@ -159,12 +158,12 @@ namespace DiscImageChef.Commands
static void DoAtaMediaInfo() => DicConsole.ErrorWriteLine("Please use device-info command for ATA devices.");
static void DoNvmeMediaInfo(string outputPrefix, Device dev) =>
static void DoNvmeMediaInfo(string outputPrefix, Devices.Device dev) =>
throw new NotImplementedException("NVMe devices not yet supported.");
static void DoSdMediaInfo() => DicConsole.ErrorWriteLine("Please use device-info command for MMC/SD devices.");
static void DoScsiMediaInfo(bool debug, bool verbose, string outputPrefix, Device dev)
static void DoScsiMediaInfo(bool debug, bool verbose, string outputPrefix, Devices.Device dev)
{
var scsiInfo = new ScsiInfo(dev);

View File

@@ -92,11 +92,11 @@ namespace DiscImageChef.Commands
char.IsLetter(devicePath[0]))
devicePath = "\\\\.\\" + char.ToUpper(devicePath[0]) + ':';
Device dev;
Devices.Device dev;
try
{
dev = new Device(devicePath);
dev = new Devices.Device(devicePath);
if(dev.IsRemote)
Statistics.AddRemote(dev.RemoteApplication, dev.RemoteVersion, dev.RemoteOperatingSystem,

View File

@@ -53,36 +53,41 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Commands\ConvertImage.cs" />
<Compile Include="Commands\ImageInfo.cs" />
<Compile Include="Commands\ListNamespaces.cs" />
<Compile Include="Commands\ListOptions.cs" />
<Compile Include="Commands\Remote.cs" />
<Compile Include="Commands\Update.cs" />
<Compile Include="Main.cs" />
<Compile Include="Commands\Database\DatabaseFamily.cs" />
<Compile Include="Commands\Database\Statistics.cs" />
<Compile Include="Commands\Database\Update.cs" />
<Compile Include="Commands\Device\DeviceFamily.cs" />
<Compile Include="Commands\Device\DeviceInfo.cs" />
<Compile Include="Commands\Device\DeviceReport.cs" />
<Compile Include="Commands\Device\ListDevices.cs" />
<Compile Include="Commands\Filesystem\ExtractFiles.cs" />
<Compile Include="Commands\Filesystem\FilesystemFamily.cs" />
<Compile Include="Commands\Filesystem\ListOptions.cs" />
<Compile Include="Commands\Filesystem\Ls.cs" />
<Compile Include="Commands\Formats.cs" />
<Compile Include="Commands\Analyze.cs" />
<Compile Include="Commands\Compare.cs" />
<Compile Include="Commands\Checksum.cs" />
<Compile Include="Commands\Verify.cs" />
<Compile Include="Commands\PrintHex.cs" />
<Compile Include="Commands\Decode.cs" />
<Compile Include="Commands\Entropy.cs" />
<Compile Include="Commands\DeviceInfo.cs" />
<Compile Include="Commands\MediaInfo.cs" />
<Compile Include="Commands\Image\Analyze.cs" />
<Compile Include="Commands\Image\Checksum.cs" />
<Compile Include="Commands\Image\Compare.cs" />
<Compile Include="Commands\Image\ConvertImage.cs" />
<Compile Include="Commands\Image\CreateSidecar.cs" />
<Compile Include="Commands\Image\Decode.cs" />
<Compile Include="Commands\Image\Entropy.cs" />
<Compile Include="Commands\Image\ImageFamily.cs" />
<Compile Include="Commands\Image\ImageInfo.cs" />
<Compile Include="Commands\Image\PrintHex.cs" />
<Compile Include="Commands\Image\Verify.cs" />
<Compile Include="Commands\ListNamespaces.cs" />
<Compile Include="Commands\Media\DumpMedia.cs" />
<Compile Include="Commands\Media\MediaFamily.cs" />
<Compile Include="Commands\Media\MediaInfo.cs" />
<Compile Include="Commands\Media\MediaScan.cs" />
<Compile Include="Commands\Remote.cs" />
<Compile Include="Main.cs" />
<Compile Include="Commands\Benchmark.cs">
<Gettext-ScanForTranslations>False</Gettext-ScanForTranslations>
</Compile>
<Compile Include="Commands\CreateSidecar.cs" />
<Compile Include="Commands\MediaScan.cs" />
<Compile Include="Commands\DumpMedia.cs" />
<Compile Include="Commands\DeviceReport.cs" />
<Compile Include="Commands\Configure.cs" />
<Compile Include="Commands\Statistics.cs" />
<Compile Include="Commands\Ls.cs" />
<Compile Include="Commands\ExtractFiles.cs" />
<Compile Include="Progress.cs" />
<Compile Include="Commands\ListDevices.cs" />
<Compile Include="Commands\ListEncodings.cs" />
</ItemGroup>
<ItemGroup>

View File

@@ -39,6 +39,10 @@ using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using DiscImageChef.Commands;
using DiscImageChef.Commands.Device;
using DiscImageChef.Commands.Filesystem;
using DiscImageChef.Commands.Image;
using DiscImageChef.Commands.Media;
using DiscImageChef.Console;
using DiscImageChef.Core;
using DiscImageChef.Database;
@@ -138,32 +142,17 @@ namespace DiscImageChef
rootCommand.Description =
$"{_assemblyTitle} {_assemblyVersion?.InformationalVersion}\n{_assemblyCopyright}";
rootCommand.AddCommand(new AnalyzeCommand());
rootCommand.AddCommand(new DatabaseFamily(masterDbUpdate));
rootCommand.AddCommand(new DeviceFamily());
rootCommand.AddCommand(new FilesystemFamily());
rootCommand.AddCommand(new ImageFamily());
rootCommand.AddCommand(new MediaFamily());
rootCommand.AddCommand(new BenchmarkCommand());
rootCommand.AddCommand(new ChecksumCommand());
rootCommand.AddCommand(new CompareCommand());
rootCommand.AddCommand(new ConfigureCommand(false, false));
rootCommand.AddCommand(new ConvertImageCommand());
rootCommand.AddCommand(new CreateSidecarCommand());
rootCommand.AddCommand(new DecodeCommand());
rootCommand.AddCommand(new DeviceInfoCommand());
rootCommand.AddCommand(new DeviceReportCommand());
rootCommand.AddCommand(new DumpMediaCommand());
rootCommand.AddCommand(new EntropyCommand());
rootCommand.AddCommand(new ExtractFilesCommand());
rootCommand.AddCommand(new FormatsCommand());
rootCommand.AddCommand(new ImageInfoCommand());
rootCommand.AddCommand(new ListDevicesCommand());
rootCommand.AddCommand(new ListEncodingsCommand());
rootCommand.AddCommand(new ListNamespacesCommand());
rootCommand.AddCommand(new ListOptionsCommand());
rootCommand.AddCommand(new LsCommand());
rootCommand.AddCommand(new MediaInfoCommand());
rootCommand.AddCommand(new MediaScanCommand());
rootCommand.AddCommand(new PrintHexCommand());
rootCommand.AddCommand(new StatisticsCommand());
rootCommand.AddCommand(new UpdateCommand(masterDbUpdate));
rootCommand.AddCommand(new VerifyCommand());
rootCommand.AddCommand(new RemoteCommand());
return rootCommand.Invoke(args);