private static bool GenerateProjectFilesCmd()

in src/dotnet/RiderPlugin.UnrealLink/PluginInstaller/UnrealProjectsRefresher.cs [107:147]


        private static bool GenerateProjectFilesCmd(Lifetime lifetime, ISolution solution, UnrealHost unrealHost,
            VirtualFileSystemPath uprojectFile, VirtualFileSystemPath engineRoot)
        {
            // Invalid uproject file means we couldn't get uproject file from solution detector and the project might be
            // under Engine source
            var invalidUprojectFile = !uprojectFile.IsValidAndExistFile();
            var isProjectUnderEngine = invalidUprojectFile || uprojectFile.StartsWith(engineRoot);
            if (!isProjectUnderEngine)
            {
                OurLogger.Info($"[UnrealLink]: {solution.SolutionFilePath} is not in {engineRoot} ");
                return false;
            }

            var generateProjectFilesCmd = engineRoot / $"GenerateProjectFiles.{CmdUtils.GetPlatformCmdExtension()}";
            if (!generateProjectFilesCmd.ExistsFile)
            {
                OurLogger.Info($"[UnrealLink]: {generateProjectFilesCmd} is not available");
                return false;
            }

            var pipeStreams = CreatePipeStreams(unrealHost, "[GenerateProjectFiles]:");
            var startInfo = CmdUtils.GetProcessStartInfo(pipeStreams, generateProjectFilesCmd, generateProjectFilesCmd.Directory);
            
            OurLogger.Info($"[UnrealLink]: Regenerating project files: {startInfo.Arguments}");
            try
            {
                var result = CmdUtils.RunCommandWithLock(lifetime, startInfo, OurLogger) == 0;
                if (!result)
                {
                    OurLogger.Warn($"[UnrealLink]: Failed refresh project files, calling {generateProjectFilesCmd} went wrong");
                }

                return result;
            }
            catch (ErrorLevelException errorLevelException)
            {
                OurLogger.Error(errorLevelException,
                    $"[UnrealLink]: Failed refresh project files, calling {generateProjectFilesCmd} went wrong");
                return false;
            }
        }