Packager/Cli.cs
2026-01-27 02:36:28 +01:00

55 lines
2.2 KiB
C#

namespace AzuresPackager.Cli;
public class Program {
public static void Main(string[] args) {
var arguments = new Dictionary<string, string>();
for (int i = 0; i < args.Length; i++) {
if (args[i].StartsWith("--") && i + 1 < args.Length) {
arguments[args[i].ToLower()] = args[i + 1];
i++;
}
}
if (!arguments.ContainsKey("--action") || !arguments.ContainsKey("--input") || !arguments.ContainsKey("--output") || !arguments.ContainsKey("--key")) {
Console.WriteLine("Usage: AzuresPackager.Cli --action <[pack/unpack]> --input <inputPath> --output <outputPath> --key <byte>");
return;
}
string source = arguments["--input"];
string output = arguments["--output"];
if (!byte.TryParse(arguments["--key"], out byte key)) {
Console.WriteLine("Error : The XOR key (--key) muste be a number between 0 and 255.");
return;
}
switch (arguments["--action"]) {
case "pack":
try {
Console.WriteLine($"[AzuresPackager] Packaging : {source} -> {output} (Key: {key})");
Packager.Pack(source, output, key);
Console.WriteLine("[AzuresPackager] Success");
Environment.Exit(0);
} catch (Exception ex) {
Console.WriteLine($"[AzuresPackager] Error : {ex.Message}");
Environment.Exit(1);
}
break;
case "unpack":
try {
Console.WriteLine($"[AzuresPackager] Unpackaging : {source} -> {output} (Key: {key})");
AzuresPackage azp = new AzuresPackage(source, key);
azp.Unpack(output);
Console.WriteLine("[AzuresPackager] Success");
Environment.Exit(0);
} catch (Exception ex) {
Console.WriteLine($"[AzuresPackager] Error : {ex.Message}");
Environment.Exit(1);
}
break;
default:
break;
}
}
}