diff options
author | Unknown <joe2010xtmf@163.com> | 2014-05-01 21:21:46 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-05-01 21:21:46 -0400 |
commit | 3bd5fc6d6f5e1a04acf93929808f982417031e2e (patch) | |
tree | d3215d8549d7bf6a8da784abf7ac67697d07d6aa /cmd/update.go | |
parent | cd2020429a8331fc4a2a4d9afa72be756343a51b (diff) | |
download | gitea-3bd5fc6d6f5e1a04acf93929808f982417031e2e.tar.gz gitea-3bd5fc6d6f5e1a04acf93929808f982417031e2e.zip |
Add command dump and move to cmd did
Diffstat (limited to 'cmd/update.go')
-rw-r--r-- | cmd/update.go | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/cmd/update.go b/cmd/update.go new file mode 100644 index 0000000000..b2c73f93cc --- /dev/null +++ b/cmd/update.go @@ -0,0 +1,85 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package cmd + +import ( + "os" + "path" + "strconv" + + "github.com/codegangsta/cli" + qlog "github.com/qiniu/log" + + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/base" +) + +var CmdUpdate = cli.Command{ + Name: "update", + Usage: "This command should only be called by SSH shell", + Description: ` +Update get pushed info and insert into database`, + Action: runUpdate, + Flags: []cli.Flag{}, +} + +func newUpdateLogger(execDir string) { + logPath := execDir + "/log/update.log" + os.MkdirAll(path.Dir(logPath), os.ModePerm) + + f, err := os.OpenFile(logPath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, os.ModePerm) + if err != nil { + qlog.Fatal(err) + } + + qlog.SetOutput(f) + qlog.Info("Start logging update...") +} + +func updateEnv(refName, oldCommitId, newCommitId string) { + os.Setenv("refName", refName) + os.Setenv("oldCommitId", oldCommitId) + os.Setenv("newCommitId", newCommitId) + qlog.Error("set envs:", refName, oldCommitId, newCommitId) +} + +// for command: ./gogs update +func runUpdate(c *cli.Context) { + cmd := os.Getenv("SSH_ORIGINAL_COMMAND") + if cmd == "" { + return + } + + execDir, _ := base.ExecDir() + newUpdateLogger(execDir) + + base.NewConfigContext() + models.LoadModelsConfig() + + if models.UseSQLite3 { + os.Chdir(execDir) + } + + models.SetEngine() + + args := c.Args() + if len(args) != 3 { + qlog.Fatal("received less 3 parameters") + } + + if args[0] == "" { + qlog.Fatal("refName is empty, shouldn't use") + } + + //updateEnv(args[0], args[1], args[2]) + + userName := os.Getenv("userName") + userId := os.Getenv("userId") + iUserId, _ := strconv.ParseInt(userId, 10, 64) + //repoId := os.Getenv("repoId") + repoName := os.Getenv("repoName") + + models.Update(args[0], args[1], args[2], userName, repoName, iUserId) +} |