using AssetStudio; using AssetStudioCLI.Options; using System; namespace AssetStudioCLI { class Program { public static void Main(string[] args) { var options = new CLIOptions(args); if (options.isParsed) { CLIRun(options); } else if (options.showHelp) { options.ShowHelp(); } else { Console.WriteLine(); options.ShowHelp(showUsageOnly: true); } } private static void CLIRun(CLIOptions options) { var cliLogger = new CLILogger(options); Logger.Default = cliLogger; var studio = new Studio(options); options.ShowCurrentOptions(); try { if (studio.LoadAssets()) { studio.ParseAssets(); if (options.filterBy != FilterBy.None) { studio.FilterAssets(); } if (options.o_exportAssetList.Value != ExportListType.None) { studio.ExportAssetList(); } if (options.o_workMode.Value == WorkMode.Info) { studio.ShowExportableAssetsInfo(); return; } studio.ExportAssets(); } } catch (Exception ex) { Logger.Error(ex.ToString()); } finally { cliLogger.LogToFile(LoggerEvent.Verbose, "---Program ended---"); } } } }