From ca10494f4af747f5dc9ada8908281840e82344af Mon Sep 17 00:00:00 2001 From: Saeed Rasooli Date: Mon, 9 Apr 2018 12:18:23 +0800 Subject: [PATCH 1/2] avoid os.Setenv calls in runServ, add env vars to gitcmd.Env instead --- cmd/serv.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/cmd/serv.go b/cmd/serv.go index 0326656f2..946c6216d 100644 --- a/cmd/serv.go +++ b/cmd/serv.go @@ -151,13 +151,15 @@ func runServ(c *cli.Context) error { reponame = reponame[:len(reponame)-5] } - os.Setenv(models.EnvRepoUsername, username) + env := map[string]string{} + + env[models.EnvRepoUsername] = username if isWiki { - os.Setenv(models.EnvRepoIsWiki, "true") + env[models.EnvRepoIsWiki] = "true" } else { - os.Setenv(models.EnvRepoIsWiki, "false") + env[models.EnvRepoIsWiki] = "false" } - os.Setenv(models.EnvRepoName, reponame) + env[models.EnvRepoName] = reponame repo, err := models.GetRepositoryByOwnerAndName(username, reponame) if err != nil { @@ -249,8 +251,8 @@ func runServ(c *cli.Context) error { user.Name, repoPath) } - os.Setenv(models.EnvPusherName, user.Name) - os.Setenv(models.EnvPusherID, fmt.Sprintf("%d", user.ID)) + env[models.EnvPusherName] = user.Name + env[models.EnvPusherID] = fmt.Sprintf("%d", user.ID) } } @@ -310,7 +312,11 @@ func runServ(c *cli.Context) error { } } - os.Setenv(models.ProtectedBranchRepoID, fmt.Sprintf("%d", repo.ID)) + env[models.ProtectedBranchRepoID] = fmt.Sprintf("%d", repo.ID) + + for key, value := range env { + gitcmd.Env = append(gitcmd.Env, fmt.Sprintf("%s=%s", key, value)) + } gitcmd.Dir = setting.RepoRootPath gitcmd.Stdout = os.Stdout From a24f52b0652b9999662d2afd2a47c3ead6a31370 Mon Sep 17 00:00:00 2001 From: Saeed Rasooli Date: Mon, 23 Apr 2018 16:56:49 +0800 Subject: [PATCH 2/2] cmd/serv.go: use a string slice instead of map for keeping env vars --- cmd/serv.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/cmd/serv.go b/cmd/serv.go index 946c6216d..31d1019c3 100644 --- a/cmd/serv.go +++ b/cmd/serv.go @@ -151,15 +151,18 @@ func runServ(c *cli.Context) error { reponame = reponame[:len(reponame)-5] } - env := map[string]string{} - - env[models.EnvRepoUsername] = username - if isWiki { - env[models.EnvRepoIsWiki] = "true" - } else { - env[models.EnvRepoIsWiki] = "false" + env := []string{} + addEnv := func(key string, value string) { + env = append(env, key+"="+value) } - env[models.EnvRepoName] = reponame + + addEnv(models.EnvRepoUsername, username) + if isWiki { + addEnv(models.EnvRepoIsWiki, "true") + } else { + addEnv(models.EnvRepoIsWiki, "false") + } + addEnv(models.EnvRepoName, reponame) repo, err := models.GetRepositoryByOwnerAndName(username, reponame) if err != nil { @@ -251,8 +254,8 @@ func runServ(c *cli.Context) error { user.Name, repoPath) } - env[models.EnvPusherName] = user.Name - env[models.EnvPusherID] = fmt.Sprintf("%d", user.ID) + addEnv(models.EnvPusherName, user.Name) + addEnv(models.EnvPusherID, fmt.Sprintf("%d", user.ID)) } } @@ -312,12 +315,9 @@ func runServ(c *cli.Context) error { } } - env[models.ProtectedBranchRepoID] = fmt.Sprintf("%d", repo.ID) - - for key, value := range env { - gitcmd.Env = append(gitcmd.Env, fmt.Sprintf("%s=%s", key, value)) - } + addEnv(models.ProtectedBranchRepoID, fmt.Sprintf("%d", repo.ID)) + gitcmd.Env = env gitcmd.Dir = setting.RepoRootPath gitcmd.Stdout = os.Stdout gitcmd.Stdin = os.Stdin