internal/platform/thirdpartyscan/compute.go (52 lines of code) (raw):
/*
* Copyright 2021-2024 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package thirdpartyscan
import (
"path/filepath"
"strings"
"github.com/JetBrains/qodana-cli/internal/platform/cmd"
"github.com/JetBrains/qodana-cli/internal/platform/commoncontext"
)
func ComputeContext(
cliOptions platformcmd.CliOptions,
initArgs commoncontext.Context,
linterInfo LinterInfo,
mountInfo MountInfo,
cloudData ThirdPartyStartupCloudData,
qodanaYamlConfig QodanaYamlConfig,
) Context {
projectDir := initArgs.ProjectDir
clangCompileCommands := cliOptions.ClangCompileCommands
if strings.HasPrefix(clangCompileCommands, "./") || strings.HasPrefix(clangCompileCommands, "../") {
clangCompileCommands = filepath.Join(projectDir, clangCompileCommands)
clangCompileCommands = filepath.Clean(clangCompileCommands)
}
clangArgs := cliOptions.ClangArgs
if clangArgs != "" {
clangArgs = "-- " + clangArgs
}
return ContextBuilder{
LinterInfo: linterInfo,
MountInfo: mountInfo,
CloudData: cloudData,
ProjectDir: projectDir,
ResultsDir: initArgs.ResultsDir,
ReportDir: initArgs.ReportDir,
LogDir: initArgs.LogDir(),
CacheDir: initArgs.CacheDir,
ClangCompileCommands: clangCompileCommands,
ClangArgs: clangArgs,
Property: cliOptions.Property,
CdnetSolution: cliOptions.CdnetSolution,
CdnetProject: cliOptions.CdnetProject,
CdnetConfiguration: cliOptions.CdnetConfiguration,
CdnetPlatform: cliOptions.CdnetPlatform,
NoStatistics: cliOptions.NoStatistics,
CdnetNoBuild: cliOptions.CdnetNoBuild,
AnalysisId: cliOptions.AnalysisId,
Baseline: cliOptions.Baseline,
BaselineIncludeAbsent: cliOptions.BaselineIncludeAbsent,
FailThreshold: cliOptions.FailThreshold,
GenerateCodeClimateReport: cliOptions.GenerateCodeClimateReport,
SendBitBucketInsights: cliOptions.SendBitBucketInsights,
QodanaYamlConfig: qodanaYamlConfig,
}.Build()
}