static void OnDelete(string relativePath, string externalPath) { string externalFile = Path.Combine(externalPath, relativePath); Debug.Log(string.Format("Deleted: {0} now Deleting: {1}", relativePath, externalFile)); ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles(); if (File.Exists(externalFile)) { modifiedFiles.DeleteFile(externalFile); AssetDatabase.SaveAssets(); } }
static void OnNewImport(string relativePath, string path, string externalPath) { string externalFile = Path.Combine(externalPath, relativePath); Debug.Log(string.Format("Imported: {0} now Creating: {1}", relativePath, externalFile)); ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles(); if (File.Exists(externalFile)) { if (File.GetLastWriteTime(externalFile) < File.GetLastWriteTime(path)) { modifiedFiles.AddFile(path, externalFile); AssetDatabase.SaveAssets(); } } else { modifiedFiles.AddFile(path, externalFile); AssetDatabase.SaveAssets(); } }
void OnGUI() { externalFolder = EditorPrefs.GetString(externalFolderKey); GUILayout.Label("Folder to Sync to"); string newExternalFolder = EditorGUILayout.TextField(externalFolder); EditorPrefs.SetString(externalFolderKey, newExternalFolder); GUILayout.Space(20); ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles(); if (modifiedFiles.addedFiles == null || modifiedFiles.addedFiles.Count < 1) { GUILayout.BeginVertical(); GUILayout.Label("No added files"); GUILayout.EndVertical(); } else { GUILayout.BeginVertical(); for (int i = 0; i < modifiedFiles.addedFiles.Count; ++i) { FileMod modification = modifiedFiles.addedFiles[i]; GUILayout.BeginHorizontal(); GUILayout.Label(modification.sourcePath); if (GUILayout.Button("Discard")) { Debug.Log("This is supposed to discard"); modifiedFiles.addedFiles.RemoveAt(i); AssetDatabase.SaveAssets(); } GUILayout.EndHorizontal(); } if (GUILayout.Button("Push Changes")) { foreach (FileMod modification in modifiedFiles.addedFiles) { Directory.CreateDirectory(Path.GetDirectoryName(modification.destinationPath)); File.Copy(modification.sourcePath, modification.destinationPath, true); } modifiedFiles.addedFiles.Clear(); AssetDatabase.SaveAssets(); } GUILayout.EndVertical(); } GUILayout.Space(20); if (modifiedFiles.deletedFiles == null || modifiedFiles.deletedFiles.Count < 1) { GUILayout.BeginVertical(); GUILayout.Label("No deleted files"); GUILayout.EndVertical(); } else { GUILayout.BeginVertical(); foreach (string deletedFile in modifiedFiles.deletedFiles) { GUILayout.BeginHorizontal(); GUILayout.Label(deletedFile); if (GUILayout.Button("Discard")) { Debug.Log("This is supposed to discard"); } GUILayout.EndHorizontal(); } if (GUILayout.Button("Push Changes")) { Debug.Log("This doesn't work yet"); } GUILayout.EndVertical(); } }