public static void ProcessDir(DirectoryInfo directoryInfo, string outDir) { if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir); // DirectoryInfo outDirInfo = new DirectoryInfo(outDir); // // Directories: // ObsoleteDirs obsoleteDirs = new ObsoleteDirs(outDirInfo); foreach (DirectoryInfo subDirectoryInfo in directoryInfo.EnumerateDirectories()) { obsoleteDirs.RemoveDirFromObsoleteList(subDirectoryInfo); // ProcessDir(subDirectoryInfo, Path.Combine(outDir, subDirectoryInfo.Name)); } obsoleteDirs.DeleteDirs(); // // Files: // ObsoleteFiles obsoleteFiles = new ObsoleteFiles(outDirInfo); foreach (FileInfo fileInfo in directoryInfo.EnumerateFiles()) { string outFileName = processFile(fileInfo, outDir); obsoleteFiles.RemoveFileFromObsoleteList(outFileName); } obsoleteFiles.DeleteFiles(); }
private bool processDir(TestDirNode testDirNode, DirectoryInfo directoryInfo, string outDir) { bool result = false; // if (!Directory.Exists(outDir)) { Directory.CreateDirectory(outDir); } DirectoryInfo outDirInfo = new DirectoryInfo(outDir); // // Directories: // ObsoleteDirs obsoleteDirs = new ObsoleteDirs(outDirInfo); foreach (DirectoryInfo subDirectoryInfo in directoryInfo.EnumerateDirectories()) { TestDirNode subTestDirNode = new TestDirNode(subDirectoryInfo.Name); if (processDir(subTestDirNode, subDirectoryInfo, Path.Combine(outDir, subDirectoryInfo.Name))) { obsoleteDirs.RemoveDirFromObsoleteList(subDirectoryInfo); testDirNode.AddSubDir(subTestDirNode); result = true; } } obsoleteDirs.DeleteDirs(); // // Files: // ObsoleteFiles obsoleteFiles = new ObsoleteFiles(outDirInfo); foreach (FileInfo fileInfo in directoryInfo.EnumerateFiles("*.spec.js")) { string outFileName = fileInfo.Name + ".html"; obsoleteFiles.RemoveFileFromObsoleteList(outFileName); string fullOutFileName = Path.Combine(outDir, outFileName); obsoleteFiles.RemoveFileFromObsoleteList(outFileName); // //Console.WriteLine(fileInfo.FullName); //Console.WriteLine(" " + fullOutFileName); // TestResultsInfo testResultInfo = RunMocha.Run(fileInfo.FullName, fullOutFileName); //TestResultsInfo testResultInfo = new TestResultsInfo(); // //Console.WriteLine(string.Format("total={0} passed={1}", testResultInfo.Total, testResultInfo.Passed)); TestItemNode itemNode = new TestItemNode() { Name = fileInfo.Name, ResultsInfo = testResultInfo }; testDirNode.AddItem(itemNode); // // result = true; } obsoleteFiles.DeleteFiles(); // if (!result) { Directory.Delete(outDir); } // return result; }
// ------------------------------------- // processDir() // ------------------------------------- private static void processDir(DirectoryInfo directoryInfo, string outDir) { if (!Directory.Exists(outDir)) { Directory.CreateDirectory(outDir); } DirectoryInfo outDirInfo = new DirectoryInfo(outDir); // // Directories: // ObsoleteDirs obsoleteDirs = new ObsoleteDirs(outDirInfo); foreach (DirectoryInfo subDirectoryInfo in directoryInfo.EnumerateDirectories()) { obsoleteDirs.RemoveDirFromObsoleteList(subDirectoryInfo); // processDir(subDirectoryInfo, Path.Combine(outDir, subDirectoryInfo.Name)); } obsoleteDirs.DeleteDirs(); // // Files: // ObsoleteFiles obsoleteFiles = new ObsoleteFiles(outDirInfo); foreach (FileInfo fileInfo in directoryInfo.EnumerateFiles()) { //obsoleteFiles.RemoveFileFromObsoleteList(fileInfo); // string contentHtml = File.ReadAllText(fileInfo.FullName); // string outFileName = Path.ChangeExtension(fileInfo.Name, ".html"); obsoleteFiles.RemoveFileFromObsoleteList(outFileName); string fullOutFileName = Path.Combine(outDir, outFileName); // writePage(fullOutFileName, contentHtml); } obsoleteFiles.DeleteFiles(); }
/// <summary> /// Find all files in the asset database with multiple version numbers /// encoded in their filename, select the most recent revisions and /// delete obsolete versions and files referenced by old manifests that /// are not present in the most recent manifests. /// </summary> public static void UpdateVersionedAssets(bool forceUpdate = false) { // If this module is disabled do nothing. if (!forceUpdate && !Enabled) return; var metadataSet = FileMetadataSet.FindWithPendingUpdates( FileMetadataSet.ParseFromFilenames(FindAllAssets())); if (metadataSet.EnableMostRecentPlugins()) { AssetDatabase.Refresh(); } var obsoleteFiles = new ObsoleteFiles( ManifestReferences.FindAndReadManifests(metadataSet), metadataSet); // Obsolete files that are no longer reference can be safely // deleted, prompt the user for confirmation if they have the option // enabled. bool deleteFiles = true; if (obsoleteFiles.unreferenced.Count > 0) { if (CleanUpPromptEnabled && deleteFiles) { deleteFiles = EditorUtility.DisplayDialog( PLUGIN_NAME, "Would you like to delete the following obsolete files " + "in your project?\n\n" + String.Join("\n", new List<string>( obsoleteFiles.unreferenced).ToArray()), "Yes", cancel: "No"); } foreach (var filename in obsoleteFiles.unreferenced) { if (deleteFiles) { MoveAssetToTrash(filename); } else if (VerboseLoggingEnabled) { UnityEngine.Debug.Log("Leaving obsolete file: " + filename); } } } // If any obsolete referenced files are present, prompt the user for // confirmation of deletion. if (obsoleteFiles.referenced.Count > 0) { List<string> referencesString = new List<string>(); foreach (var item in obsoleteFiles.referenced) { List<string> lines = new List<string>(); lines.Add(item.Key); foreach (var reference in item.Value) { lines.Add(" " + reference); } referencesString.Add(String.Join("\n", lines.ToArray())); } deleteFiles = EditorUtility.DisplayDialog( PLUGIN_NAME, "The following obsolete files are referenced by packages in " + "your project, would you like to delete them?\n\n" + String.Join("\n", referencesString.ToArray()), "Yes", cancel: "No"); foreach (var item in obsoleteFiles.referenced) { if (deleteFiles) { MoveAssetToTrash(item.Key); } else if (VerboseLoggingEnabled) { UnityEngine.Debug.Log( "Leaving obsolete file: " + item.Key + " | " + "Referenced by (" + String.Join(", ", item.Value.ToArray()) + ")"); } } } }