public bool Execute(string[] args) { if (args.Length < 1) { Console.WriteLine("Expected at least 1 argument"); return(false); } var inputPath = args[0]; if (!Directory.Exists(inputPath)) { Console.WriteLine("Input directory doesn't exist"); return(false); } var outputPath = Path.ChangeExtension(inputPath, "acx"); if (args.Length > 1) { outputPath = args[1]; } using (var fs = new ACXFileSystem()) { foreach (string file in Directory.EnumerateFiles(inputPath, "*.*", SearchOption.AllDirectories)) { Console.WriteLine($"Adding file: {file}"); fs.AddFile(file); } Console.WriteLine("Saving..."); fs.Save(outputPath); } return(true); }
public bool Execute(string[] args) { if (args.Length < 2) { Console.WriteLine("Expected at least 2 arguments."); return(false); } var inputPath = args[0]; if (!File.Exists(inputPath)) { Console.WriteLine("Input file doesn't exist."); return(false); } var fs = new ACXFileSystem(); try { fs.Load(inputPath); } catch (Exception) { Console.WriteLine("Invalid acx file"); return(false); } string outputPath = inputPath; if (Directory.Exists(args[1])) { var directoryPath = args[1]; if (args.Length > 2) { outputPath = args[2]; } using ( fs ) { foreach (string file in Directory.EnumerateFiles(directoryPath, "*.*", SearchOption.AllDirectories)) { Console.WriteLine($"Adding/Replacing file: {file}"); var name = Path.GetFileName(file); if (int.TryParse(name, out var handle)) { fs.AddFile(handle, file, ConflictPolicy.Replace); } else { fs.AddFile(file); } } Console.WriteLine("Saving..."); fs.Save(outputPath); } } else { if (args.Length > 3) { outputPath = args[3]; } using ( fs ) { var entryName = args[1]; if (int.TryParse(entryName, out var handle)) { if (!fs.Exists(handle)) { Console.WriteLine("Specified entry doesn't exist."); return(false); } var filePath = args[2]; if (!File.Exists(filePath)) { Console.WriteLine("Specified replacement file doesn't exist."); return(false); } Console.WriteLine($"Adding/Replacing file: {filePath}"); fs.AddFile(handle, filePath, ConflictPolicy.Replace); Console.WriteLine("Saving..."); fs.Save(outputPath); } } } return(true); }