Esempio n. 1
0
        private static void CreatePatch()
        {
            string prevRoot = GetArgument("prevRoot");

            PatchCreator patchCreator = new PatchCreator(GetArgument("root"), GetArgument("out"), GetArgument("name"), GetArgument("version")).
                                        LoadIgnoredPathsFromFile(GetArgument("ignoredPaths")).CreateRepairPatch(!HasArgument("dontCreateRepairPatch")).
                                        CreateIncrementalPatch(prevRoot != null, prevRoot).SilentMode(HasArgument("silent"));
            bool hasStarted = patchCreator.Run();

            if (hasStarted)
            {
                while (patchCreator.IsRunning)
                {
                    Thread.Sleep(100);

                    string log = patchCreator.FetchLog();
                    while (log != null)
                    {
                        LogToConsole(log);
                        log = patchCreator.FetchLog();
                    }
                }

                if (patchCreator.Result == PatchResult.Failed)
                {
                    Console.WriteLine("\nOperation failed...");
                }
                else
                {
                    Console.WriteLine("\nOperation successful...");
                }
            }
            else
            {
                Console.WriteLine("\nOperation could not be started; maybe it is already executing?");
            }
        }
        private void DrawCreateTab()
        {
            c_RootPath     = PathField("Root path: ", c_RootPath, true);
            c_PrevRoot     = PathField("Previous version path: ", c_PrevRoot, true);
            c_OutputPath   = PathField("Output path: ", c_OutputPath, true);
            c_IgnoredFiles = PathField("Ignored files holder: ", c_IgnoredFiles, false);

            c_Name    = EditorGUILayout.TextField("Project name: ", c_Name);
            c_Version = EditorGUILayout.TextField("Project version: ", c_Version);

            c_CreateRepair    = EditorGUILayout.Toggle("Create repair patch: ", c_CreateRepair);
            c_IgnoreOutputLog = EditorGUILayout.Toggle("Ignore output_log.txt: ", c_IgnoreOutputLog);

            GUILayout.Space(10f);

            if (GUILayout.Button("Create Patch", GUILayout.Height(35f)))
            {
                c_RootPath     = c_RootPath.Trim();
                c_PrevRoot     = c_PrevRoot.Trim();
                c_OutputPath   = c_OutputPath.Trim();
                c_IgnoredFiles = c_IgnoredFiles.Trim();
                c_Name         = c_Name.Trim();
                c_Version      = c_Version.Trim();

                if (string.IsNullOrEmpty(c_RootPath) || string.IsNullOrEmpty(c_OutputPath) || string.IsNullOrEmpty(c_Name) || string.IsNullOrEmpty(c_Version))
                {
                    return;
                }

                patchCreator = new PatchCreator(c_RootPath, c_OutputPath, c_Name, c_Version);
                patchCreator.CreateIncrementalPatch(c_PrevRoot.Length > 0, c_PrevRoot).CreateRepairPatch(c_CreateRepair);
                if (c_IgnoredFiles.Length > 0)
                {
                    patchCreator.LoadIgnoredPathsFromFile(c_IgnoredFiles);
                }
                if (c_IgnoreOutputLog)
                {
                    patchCreator.AddIgnoredPath("*output_log.txt");
                }

                if (patchCreator.Run())
                {
                    Debug.Log("<b>Patch creator started</b>");

                    EditorApplication.update -= OnUpdate;
                    EditorApplication.update += OnUpdate;
                }
                else
                {
                    Debug.LogWarning("<b>Couldn't start patch creator. Maybe it is already running?</b>");
                }
            }

            if (GUILayout.Button("Generate Console Command", GUILayout.Height(25f)))
            {
                string command = string.Format("Patcher create -root=\"{0}\" -out=\"{1}\" -name=\"{2}\" -version=\"{3}\"", c_RootPath, c_OutputPath, c_Name, c_Version);
                if (c_PrevRoot.Length > 0)
                {
                    command += string.Concat(" -prevRoot=\"", c_PrevRoot, "\"");
                }
                if (c_IgnoredFiles.Length > 0)
                {
                    command += string.Concat(" -ignoredPaths=\"", c_IgnoredFiles, "\"");
                }
                if (!c_CreateRepair)
                {
                    command += " -dontCreateRepairPatch";
                }

                Debug.Log(command);

                if (c_IgnoreOutputLog)
                {
                    if (c_IgnoredFiles.Length > 0)
                    {
                        Debug.Log(string.Concat("You have to add *output_log.txt to ", c_IgnoredFiles, " manually"));
                    }
                    else
                    {
                        Debug.Log("To ignore output_log.txt, you have to provide an Ignored files holder and add *output_log.txt to it manually");
                    }
                }
            }
        }
Esempio n. 3
0
        private static void CreatePatch()
        {
            string prevRoot        = GetArgument("prevRoot");
            string compRepair      = GetArgument("compressionRepair");
            string compInstaller   = GetArgument("compressionInstaller");
            string compIncremental = GetArgument("compressionIncremental");

            CompressionFormat repairCompression, installerCompression, incrementalCompression;

            if (compRepair == "GZIP")
            {
                repairCompression = CompressionFormat.GZIP;
            }
            else if (compRepair == "NONE")
            {
                repairCompression = CompressionFormat.NONE;
            }
            else
            {
                repairCompression = CompressionFormat.LZMA;
            }

            if (compInstaller == "GZIP")
            {
                installerCompression = CompressionFormat.GZIP;
            }
            else if (compInstaller == "NONE")
            {
                installerCompression = CompressionFormat.NONE;
            }
            else
            {
                installerCompression = CompressionFormat.LZMA;
            }

            if (compIncremental == "GZIP")
            {
                incrementalCompression = CompressionFormat.GZIP;
            }
            else if (compIncremental == "NONE")
            {
                incrementalCompression = CompressionFormat.NONE;
            }
            else
            {
                incrementalCompression = CompressionFormat.LZMA;
            }

            PatchCreator patchCreator = new PatchCreator(GetArgument("root"), GetArgument("out"), GetArgument("name"), GetArgument("version")).
                                        LoadIgnoredPathsFromFile(GetArgument("ignoredPaths")).SetCompressionFormat(repairCompression, installerCompression, incrementalCompression).
                                        CreateRepairPatch(!HasArgument("dontCreateRepairPatch")).CreateIncrementalPatch(prevRoot != null, prevRoot).CreateInstallerPatch(!HasArgument("dontCreateInstallerPatch")).
                                        SetPreviousPatchFilesRoot(GetArgument("prevPatchRoot"), HasArgument("skipUnchangedPatchFiles")).SilentMode(HasArgument("silent"));
            bool hasStarted = patchCreator.Run();

            if (hasStarted)
            {
                WaitForPatchCreator(patchCreator);

                if (patchCreator.Result == PatchResult.Failed)
                {
                    Console.WriteLine("\nOperation failed...");
                }
                else
                {
                    Console.WriteLine("\nOperation successful...");
                }
            }
            else
            {
                Console.WriteLine("\nOperation could not be started; maybe it is already executing?");
            }
        }
        private void DrawCreateTab()
        {
            c_RootPath       = PathField(rootPathGUI, c_RootPath, true);
            c_PrevRoot       = PathField(prevRootGUI, c_PrevRoot, true);
            c_PrevOutputPath = PathField(prevOutputPathGUI, c_PrevOutputPath, true);
            c_OutputPath     = PathField(outputPathGUI, c_OutputPath, true);

            c_Name    = EditorGUILayout.TextField("Project name: ", c_Name);
            c_Version = EditorGUILayout.TextField("Project version: ", c_Version);

            c_CreateRepair    = EditorGUILayout.Toggle("Create repair patch: ", c_CreateRepair);
            c_CreateInstaller = EditorGUILayout.Toggle("Create installer patch: ", c_CreateInstaller);

            GUI.enabled = false;
            EditorGUILayout.Toggle(createIncrementalGUI, !string.IsNullOrEmpty(c_PrevRoot));

            if (!string.IsNullOrEmpty(c_PrevOutputPath))
            {
                GUI.enabled = true;
            }

            c_SkipUnchangedPatchFiles = EditorGUILayout.Toggle(skipUnchangedPatchFilesGUI, c_SkipUnchangedPatchFiles);
            GUI.enabled = true;

            c_RepairComp      = (CompressionFormat)EditorGUILayout.EnumPopup("Repair patch compression: ", c_RepairComp);
            c_IncrementalComp = (CompressionFormat)EditorGUILayout.EnumPopup("Incremental patch compression: ", c_IncrementalComp);
            c_InstallerComp   = (CompressionFormat)EditorGUILayout.EnumPopup("Installer patch compression: ", c_InstallerComp);

            GUILayout.Label("Ignored paths (one path per line): ");
            c_IgnoredPaths = EditorGUILayout.TextArea(c_IgnoredPaths);

            GUILayout.Space(10f);

            if (GUILayout.Button("Create Patch", GUILayout.Height(35f)))
            {
                c_RootPath       = c_RootPath.Trim();
                c_PrevRoot       = c_PrevRoot.Trim();
                c_PrevOutputPath = c_PrevOutputPath.Trim();
                c_OutputPath     = c_OutputPath.Trim();
                c_IgnoredPaths   = c_IgnoredPaths.Trim();
                c_Name           = c_Name.Trim();
                c_Version        = c_Version.Trim();

                if (c_RootPath.Length == 0 || c_OutputPath.Length == 0 || c_Name.Length == 0 || c_Version.Length == 0)
                {
                    return;
                }

                patchCreator = new PatchCreator(c_RootPath, c_OutputPath, c_Name, c_Version);
                patchCreator.CreateIncrementalPatch(c_PrevRoot.Length > 0, c_PrevRoot).CreateRepairPatch(c_CreateRepair).CreateInstallerPatch(c_CreateInstaller).
                SetCompressionFormat(c_RepairComp, c_InstallerComp, c_IncrementalComp).SetPreviousPatchFilesRoot(c_PrevOutputPath, c_SkipUnchangedPatchFiles);

                if (c_IgnoredPaths.Length > 0)
                {
                    patchCreator.AddIgnoredPaths(c_IgnoredPaths.Replace("\r", "").Split('\n'));
                }

                if (!EditorUtility.DisplayDialog("Self Patcher Executable", "If this is a self patching app (i.e. this app will update itself), you'll first need to generate a self patcher executable. See README for more info.", "Got it!", "Oh, I forgot it!"))
                {
                    return;
                }

                if (patchCreator.Run())
                {
                    Debug.Log("<b>Patch creator started</b>");

                    EditorApplication.update -= OnUpdate;
                    EditorApplication.update += OnUpdate;
                }
                else
                {
                    Debug.LogWarning("<b>Couldn't start patch creator. Maybe it is already running?</b>");
                }
            }

            if (GUILayout.Button("Generate Console Command", GUILayout.Height(25f)))
            {
                string command = string.Format("Patcher create -root=\"{0}\" -out=\"{1}\" -name=\"{2}\" -version=\"{3}\" -compressionRepair=\"{4}\" -compressionIncremental=\"{5}\" -compressionInstaller=\"{6}\"", c_RootPath, c_OutputPath, c_Name, c_Version, c_RepairComp, c_IncrementalComp, c_InstallerComp);
                if (c_PrevRoot.Length > 0)
                {
                    command += string.Concat(" -prevRoot=\"", c_PrevRoot, "\"");
                }
                if (c_PrevOutputPath.Length > 0)
                {
                    command += string.Concat(" -prevPatchRoot=\"", c_PrevOutputPath, "\"");
                }
                if (c_IgnoredPaths.Length > 0)
                {
                    command += string.Concat(" -ignoredPaths=\"", CONSOLE_COMMAND_IGNORED_PATHS_HOLDER, "\"");
                }
                if (!c_CreateRepair)
                {
                    command += " -dontCreateRepairPatch";
                }
                if (!c_CreateInstaller)
                {
                    command += " -dontCreateInstallerPatch";
                }
                if (c_SkipUnchangedPatchFiles)
                {
                    command += " -skipUnchangedPatchFiles";
                }

                Debug.Log(command);

                if (c_IgnoredPaths.Length > 0)
                {
                    Debug.Log(string.Concat("You have to insert the following ignored path(s) to \"", CONSOLE_COMMAND_IGNORED_PATHS_HOLDER, "\":\n", c_IgnoredPaths));
                }
            }

            if (GUILayout.Button("Help", GUILayout.Height(25f)))
            {
                Application.OpenURL("https://github.com/yasirkula/SimplePatchTool/wiki/Legacy:-Generating-Patch#via-unity-plugin");
            }
        }
Esempio n. 5
0
        private void DrawCreateTab()
        {
            c_RootPath   = PathField("Root path: ", c_RootPath, true);
            c_PrevRoot   = PathField("Previous version path: ", c_PrevRoot, true);
            c_OutputPath = PathField("Output path: ", c_OutputPath, true);

            c_Name    = EditorGUILayout.TextField("Project name: ", c_Name);
            c_Version = EditorGUILayout.TextField("Project version: ", c_Version);

            c_CreateRepair = EditorGUILayout.Toggle("Create repair patch: ", c_CreateRepair);

            GUILayout.Label("Ignored paths (one path per line): ");
            c_IgnoredPaths = EditorGUILayout.TextArea(c_IgnoredPaths);

            GUILayout.Space(10f);

            if (GUILayout.Button("Create Patch", GUILayout.Height(35f)))
            {
                c_RootPath     = c_RootPath.Trim();
                c_PrevRoot     = c_PrevRoot.Trim();
                c_OutputPath   = c_OutputPath.Trim();
                c_IgnoredPaths = c_IgnoredPaths.Trim();
                c_Name         = c_Name.Trim();
                c_Version      = c_Version.Trim();

                if (c_RootPath.Length == 0 || c_OutputPath.Length == 0 || c_Name.Length == 0 || c_Version.Length == 0)
                {
                    return;
                }

                patchCreator = new PatchCreator(c_RootPath, c_OutputPath, c_Name, c_Version);
                patchCreator.CreateIncrementalPatch(c_PrevRoot.Length > 0, c_PrevRoot).CreateRepairPatch(c_CreateRepair);

                if (c_IgnoredPaths.Length > 0)
                {
                    patchCreator.AddIgnoredPaths(c_IgnoredPaths.Replace("\r", "").Split('\n'));
                }

                if (patchCreator.Run())
                {
                    Debug.Log("<b>Patch creator started</b>");

                    EditorApplication.update -= OnUpdate;
                    EditorApplication.update += OnUpdate;
                }
                else
                {
                    Debug.LogWarning("<b>Couldn't start patch creator. Maybe it is already running?</b>");
                }
            }

            if (GUILayout.Button("Generate Console Command", GUILayout.Height(25f)))
            {
                string command = string.Format("Patcher create -root=\"{0}\" -out=\"{1}\" -name=\"{2}\" -version=\"{3}\"", c_RootPath, c_OutputPath, c_Name, c_Version);
                if (c_PrevRoot.Length > 0)
                {
                    command += string.Concat(" -prevRoot=\"", c_PrevRoot, "\"");
                }
                if (c_IgnoredPaths.Length > 0)
                {
                    command += string.Concat(" -ignoredPaths=\"", CONSOLE_COMMAND_IGNORED_PATHS_HOLDER, "\"");
                }
                if (!c_CreateRepair)
                {
                    command += " -dontCreateRepairPatch";
                }

                Debug.Log(command);

                if (c_IgnoredPaths.Length > 0)
                {
                    Debug.Log(string.Concat("You have to insert the following ignored path(s) to \"", CONSOLE_COMMAND_IGNORED_PATHS_HOLDER, "\":\n", c_IgnoredPaths));
                }
            }
        }