public static void UpdateThread(object PersistentPath) { Debug.Log("Updating...."); using (WebClient client = new WebClient()) { client.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache); Debug.Log("Downloading scripts..."); File.WriteAllText(UploadBuild.Path, client.DownloadString(UploadBuildRemotePath)); File.WriteAllText(VitaFTPOptions.Path, client.DownloadString(VitaFTPIOptionsRemotePath)); File.WriteAllText(UploadWrapper.path, client.DownloadString(UploadDataRemotePath)); client.Headers.Add("user-agent", "VitaFTPI Updater"); Debug.Log("Downloading Uploader..."); client.DownloadFile("https://github.com/Ibrahim778/VitaFTPI-Core/releases/download/" + GetVersionTag(client.DownloadString(ApiQuery)) + "/Tools.zip", (string)PersistentPath + "/tempfile.zip"); } Debug.Log("Extracting..."); System.Diagnostics.ProcessStartInfo extStartInfo = new System.Diagnostics.ProcessStartInfo(); extStartInfo.FileName = "\"" + new FileInfo(new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName()).DirectoryName + "\\Extractor\\Extractor.exe" + "\""; extStartInfo.Arguments = "\"" + (string)PersistentPath + "/tempfile.zip\"" + " \"" + (string)PersistentPath + "/Extracted\""; System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo = extStartInfo; process.Start(); while (!process.HasExited) { Thread.Sleep(1); } Debug.Log("Extracted!"); File.Delete(PersistentPath + "/tempfile.zip"); DirectoryInfo newUploader = new DirectoryInfo(PersistentPath + "/Extracted/Tools/Uploader"); DirectoryInfo oldUploader = new DirectoryInfo(UploadBuild.GetUploadDir()); if (!Directory.Exists(oldUploader.FullName)) { Directory.CreateDirectory(oldUploader.FullName); } foreach (FileInfo file in newUploader.GetFiles()) { Debug.Log("Copying : " + file.Name + " to :" + Path.Combine(oldUploader.FullName, file.Name)); file.CopyTo(Path.Combine(oldUploader.FullName, file.Name), true); } Debug.Log("Done!"); }
void OnGUI() { GUILayoutOption width112 = GUILayout.Width(112); #if !UNITY_PSP2 EditorGUILayout.HelpBox("This is a PSVITA only tool, To use it set your build target to PSVITA!", MessageType.Warning); return; #endif EditorGUILayout.BeginVertical(); EditorGUILayout.Space(); GUILayout.Label("Build Settings", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); scrollView = EditorGUILayout.BeginScrollView(scrollView, false, false); if (uploadData == null) { GetUploadData(); } uploadData.startOnBuildEnd = EditorGUILayout.Toggle("Start on build end", uploadData.startOnBuildEnd); GUILayout.Space(7); uploadData.KeepFolderAfterBuild = EditorGUILayout.Toggle("Keep build folder", uploadData.KeepFolderAfterBuild); GUILayout.Space(5); uploadData.ExtractOnPC = EditorGUILayout.Toggle("Extract VPK on PC", uploadData.ExtractOnPC); EditorGUILayout.Space(); GuiLine(1); EditorGUILayout.Space(); GUILayout.Label("Connection Settings", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("IP Adress"); GUILayout.FlexibleSpace(); uploadData.IP = EditorGUILayout.TextField(uploadData.IP, EditorStyles.numberField, width112).Split(' ')[0]; GUILayout.EndHorizontal(); GUILayout.Space(4); uploadData.UseUSB = EditorGUILayout.Toggle("Use USB", uploadData.UseUSB); if (uploadData.UseUSB) { GUILayout.BeginHorizontal(); GUILayout.Label("Storage Type (PSVita)"); uploadData.storageIndex = EditorGUILayout.Popup(uploadData.storageIndex, storageOptionsVisual); uploadData.storageType = storageOptions[uploadData.storageIndex]; GUILayout.EndHorizontal(); uploadData.useUDCD = EditorGUILayout.Toggle("Use udcd_uvc", uploadData.useUDCD); if (uploadData.useUDCD) { GUILayout.BeginHorizontal(); GUILayout.Label("Plugin path: "); uploadData.udcdPath = EditorGUILayout.TextField(uploadData.udcdPath, EditorStyles.textField, GUILayout.Width(150)).Split(' ')[0]; GUILayout.EndHorizontal(); } } GUILayout.Space(8); GUILayout.BeginHorizontal(); uploadData.CustomUploaderFolder = EditorGUILayout.Toggle("Custom Uploader Folder", uploadData.CustomUploaderFolder); if (uploadData.CustomUploaderFolder) { if (GUILayout.Button("Browse", width112)) { uploadData.UploaderFolder = EditorUtility.OpenFolderPanel("Select Uploader Folder", uploadData.UploaderFolder, ""); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); } else { GUILayout.EndHorizontal(); } EditorGUILayout.Space(); // Should save once you change a field. if (GUI.changed) { File.WriteAllText(SavePath, JsonUtility.ToJson(uploadData)); AssetDatabase.ImportAsset("Assets/VitaFTPI/SaveConfig.txt"); Debug.Log("Configuration Saved!"); } EditorGUILayout.Space(); GuiLine(1); EditorGUILayout.Space(); GUILayout.Label("Dev Options", EditorStyles.boldLabel); GUILayout.Space(8); GUILayout.BeginHorizontal(); if (GUILayout.Button("Test Build")) { UploadBuild.TestBuild(); return; } if (GUILayout.Button("Relaunch Previous Test")) { UploadBuild.sendCommand("file ux0:data/VitaUnity/build/build.self"); } if (!UploadBuild.HasStarted) { if (GUILayout.Button("Start Debug")) { UploadBuild.StartDebug(); } } else if (UploadBuild.HasStarted) { if (GUILayout.Button("Stop Debug")) { UploadBuild.StopDebug(); } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GuiLine(1); EditorGUILayout.Space(); GUILayout.Label("Install Actions", EditorStyles.boldLabel); GUILayout.Space(8); GUILayout.BeginHorizontal(); if (GUILayout.Button("Build Game")) { UploadBuild.BuildGame(); return; } if (GUILayout.Button("Install")) { UploadBuild.BuildVPK(true); if (uploadData.ExtractOnPC) { UploadBuild.ReplaceInstall(); } else { UploadBuild.UploadVPK(); } } if (GUILayout.Button("Pack VPK")) { UploadBuild.PackVPK(); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GuiLine(1); EditorGUILayout.Space(); GUILayout.Label("Other", EditorStyles.boldLabel); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Launch Game")) { UploadBuild.sendCommand("launch " + Regex.Match(PlayerSettings.PSVita.contentID, "([A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9])").Value); } if (GUILayout.Button("Reboot")) { UploadBuild.sendCommand("reboot"); } if (GUILayout.Button("Close all apps")) { UploadBuild.sendCommand("destroy"); } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GuiLine(1); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.Label("Made with <3 by Ibrahim"); GUILayout.Label("Layout by Bizzy and iDevOnAParkingLot"); EditorGUILayout.EndScrollView(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }