namespace AzuresPackager.Cli; public class Program { public static void Main(string[] args) { var arguments = new Dictionary(); 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("--sourcedir") || !arguments.ContainsKey("--outputpath") || !arguments.ContainsKey("--key")) { Console.WriteLine("Usage: AzuresPackager.Cli --action <[pack/unpack]> --sourceDir --outputPath --key "); return; } string source = arguments["--sourcedir"]; string output = arguments["--outputpath"]; if (!byte.TryParse(arguments["--key"], out byte key)) { Console.WriteLine("Erreur : La clé XOR (--key) doit être un nombre entre 0 et 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] Erreur : {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] Erreur : {ex.Message}"); Environment.Exit(1); } break; default: break; } } }