public static void listResources(ResourceType?listType) { try { if (!FSOps.hasNecessaryDirs()) { CLIInterface.logError($"Missing some or all resource directories in current directory. Try running {ConstStrings.APPLICATION_ALIAS} init?"); return; } CLIInterface.PrintTable table = new CLIInterface.PrintTable { { ConstStrings.HeaderStringType, 6 }, { ConstStrings.HeaderStringNameOfResource, 21 }, { ConstStrings.HeaderStringVersion, 16 }, { ConstStrings.HeaderStringFileSize, 11 }, }; List <ResourceType> resourcesToList = listType.HasValue ? new List <ResourceType> { listType.Value } : new List <ResourceType> { ResourceType.Code, ResourceType.Data, ResourceType.Model }; foreach (ResourceType resourceType in resourcesToList) { foreach (string resourceName in FSOps.resourceNames(resourceType)) { string version; if (FSOps.resourceVersionFileExists(resourceType, resourceName)) { version = FSOps.getResourceVersion(resourceType, resourceName); } else { version = "Unknown version"; } long fileSize = FSOps.getResourceSize(resourceType, resourceName); table.addRow( doFormat(resourceType.ToString()), doFormat(resourceName), doFormat(version), doFormat(bytesToString(fileSize)) ); } } CLIInterface.logTable(table); } catch (FSOps.FSOpsException ex) { CLIInterface.logError($"File System Error: " + ex.Message); } }