/*******************************************************************************
* Copyright (c) 2017 Synopsys, Inc
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Synopsys, Inc - initial implementation and documentation
*******************************************************************************/
package jenkins.plugins.coverity;
import hudson.Util;
import hudson.EnvVars;
import hudson.model.BuildListener;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.stapler.DataBoundConstructor;
import java.io.File;
import java.util.*;
public class ScmOptionBlock {
private final String scmSystem;
private final String customTestTool;
private final String scmToolArguments;
private final String scmCommandArgs;
private final String logFileLoc;
private final String p4Port;
private final String accRevRepo;
private final String scmAdditionalCmd;
private final String fileRegex;
@DataBoundConstructor
public ScmOptionBlock(
String scmSystem,
String customTestTool,
String scmToolArguments,
String scmCommandArgs,
String logFileLoc,
String p4Port,
String accRevRepo,
String scmAdditionalCmd,
String fileRegex){
this.scmSystem = scmSystem;
this.customTestTool = Util.fixEmpty(customTestTool);
this.scmToolArguments = Util.fixEmpty(scmToolArguments);
this.scmCommandArgs = Util.fixEmpty(scmCommandArgs);
this.logFileLoc = Util.fixEmpty(logFileLoc);
this.p4Port = Util.fixEmpty(p4Port); // Required if perforce is selected
this.accRevRepo = Util.fixEmpty(accRevRepo); // Required if accurev is selected
this.scmAdditionalCmd = Util.fixEmpty(scmAdditionalCmd);
this.fileRegex = Util.fixEmpty(fileRegex);
}
public String getScmSystem(){return scmSystem;}
public String getCustomTestTool(){return customTestTool;}
public String getScmToolArguments(){return scmToolArguments;}
public String getScmCommandArgs(){return scmCommandArgs;}
public String getLogFileLoc(){return logFileLoc;}
public String getP4Port(){return p4Port;}
public String getAccRevRepo(){return accRevRepo;}
public String getScmAdditionalCmd() {
return scmAdditionalCmd;
}
public String getFileRegex() {
return fileRegex;
}
public String checkScmConfig(){
// Checking the required fields for specific SCM systems
String errorText = StringUtils.EMPTY;
Boolean delim = true;
if(this.scmSystem.equals("accurev") && this.accRevRepo == null){
errorText += "[SCM] Please specify AccuRev's source control repository under 'Advanced' \n";
delim = false;
}
if(this.scmSystem.equals("perforce") && this.p4Port == null){
errorText += "[SCM] Please specify Perforce's port environment variable under 'Advanced'\n ";
delim = false;
}
if(delim){
errorText = "Pass";
}
return errorText;
}
}