提交 26917e0e 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Support give system property to jenkins.war

上级 c5134b0e
......@@ -2,12 +2,13 @@ package cmd
import (
"fmt"
"github.com/mitchellh/go-homedir"
"net/http"
"os"
"os/exec"
"syscall"
"github.com/mitchellh/go-homedir"
"github.com/jenkins-zh/jenkins-cli/app/i18n"
"github.com/spf13/cobra"
......@@ -21,6 +22,9 @@ type CenterStartOption struct {
Context string
SetupWizard bool
// comes from folder plugin
ConcurrentIndexing int
Admin string
HTTPSEnable bool
......@@ -29,6 +33,7 @@ type CenterStartOption struct {
HTTPSPrivateKey string
Environments []string
System []string
Download bool
Version string
......@@ -44,8 +49,10 @@ func init() {
i18n.T("Port of Jenkins"))
centerStartCmd.Flags().StringVarP(&centerStartOption.Context, "context", "", "/",
i18n.T("Web context of Jenkins server"))
centerStartCmd.Flags().StringArrayVarP(&centerStartOption.Environments, "", "", nil,
centerStartCmd.Flags().StringArrayVarP(&centerStartOption.Environments, "env", "", nil,
i18n.T("Environments for the Jenkins which as key-value format"))
centerStartCmd.Flags().StringArrayVarP(&centerStartOption.System, "sys", "", nil,
i18n.T("System property key-value"))
centerStartCmd.Flags().BoolVarP(&centerStartOption.SetupWizard, "setup-wizard", "", true,
i18n.T("If you want to show the setup wizard at first start"))
centerStartCmd.Flags().BoolVarP(&centerStartOption.Download, "download", "", true,
......@@ -62,6 +69,9 @@ func init() {
centerStartCmd.Flags().StringVarP(&centerStartOption.HTTPSPrivateKey, "https-private", "", "",
i18n.T("Private key file path for https"))
centerStartCmd.Flags().IntVarP(&centerStartOption.ConcurrentIndexing, "concurrent-indexing", "", -1,
i18n.T("Concurrent indexing limit, take this value only it is bigger than -1"))
centerStartCmd.Flags().BoolVarP(&centerStartOption.DryRun, "dry-run", "", false,
i18n.T("Don't run jenkins.war really"))
}
......@@ -103,7 +113,6 @@ var centerStartCmd = &cobra.Command{
if err == nil {
env := os.Environ()
env = append(env, fmt.Sprintf("JENKINS_HOME=%s/.jenkins-cli/cache/%s/web", userHome, centerStartOption.Version))
env = append(env, fmt.Sprintf("jenkins.install.runSetupWizard=%v", centerStartOption.SetupWizard))
if centerStartOption.Environments != nil {
for _, item := range centerStartOption.Environments {
......@@ -112,6 +121,7 @@ var centerStartCmd = &cobra.Command{
}
jenkinsWarArgs := []string{"java"}
jenkinsWarArgs = centerStartOption.setSystemProperty(jenkinsWarArgs)
jenkinsWarArgs = append(jenkinsWarArgs, "-jar", jenkinsWar)
jenkinsWarArgs = append(jenkinsWarArgs, fmt.Sprintf("--httpPort=%d", centerStartOption.Port))
jenkinsWarArgs = append(jenkinsWarArgs, "--argumentsRealm.passwd.admin=admin --argumentsRealm.roles.admin=admin")
......@@ -130,3 +140,19 @@ var centerStartCmd = &cobra.Command{
return
},
}
func (c *CenterStartOption) setSystemProperty(jenkinsWarArgs []string) []string {
if c.System == nil {
c.System = []string{}
}
c.System = append(c.System, fmt.Sprintf("jenkins.install.runSetupWizard=%v", c.SetupWizard))
if c.ConcurrentIndexing > -1 {
c.System = append(c.System, fmt.Sprintf("com.cloudbees.hudson.plugins.folder.computed.ThrottleComputationQueueTaskDispatcher.LIMIT=%d", c.ConcurrentIndexing))
}
for _, item := range centerStartOption.System {
jenkinsWarArgs = append(jenkinsWarArgs, fmt.Sprintf("-D%s", item))
}
return jenkinsWarArgs
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册