@@ -14,6 +14,8 @@ | |||||
"utils" | "utils" | ||||
] | ] | ||||
}, | }, | ||||
"cmd_args": [], | |||||
"cmd_args": [ | |||||
"web" | |||||
], | |||||
"envs": [] | "envs": [] | ||||
} | } |
@@ -10,3 +10,4 @@ HOST = | |||||
NAME = gogs | NAME = gogs | ||||
USER = root | USER = root | ||||
PASSWD = | PASSWD = | ||||
PASSWD_jiahua = root |
@@ -1,16 +1,6 @@ | |||||
// Copyright 2013-2014 gogs authors. | |||||
// | |||||
// 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 | |||||
// | |||||
// http://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. | |||||
// 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. | |||||
// gogs(Go Git Service) is a Go clone of Github. | // gogs(Go Git Service) is a Go clone of Github. | ||||
package main | package main | ||||
@@ -27,7 +17,7 @@ import ( | |||||
// Test that go1.1 tag above is included in builds. main.go refers to this definition. | // Test that go1.1 tag above is included in builds. main.go refers to this definition. | ||||
const go11tag = true | const go11tag = true | ||||
const APP_VER = "0.0.0.0218" | |||||
const APP_VER = "0.0.0.0219" | |||||
func init() { | func init() { | ||||
runtime.GOMAXPROCS(runtime.NumCPU()) | runtime.GOMAXPROCS(runtime.NumCPU()) | ||||
@@ -35,7 +25,7 @@ func init() { | |||||
func main() { | func main() { | ||||
app := cli.NewApp() | app := cli.NewApp() | ||||
app.Name = "gogs" | |||||
app.Name = "Gogs" | |||||
app.Usage = "Go Git Service" | app.Usage = "Go Git Service" | ||||
app.Version = APP_VER | app.Version = APP_VER | ||||
app.Commands = []cli.Command{ | app.Commands = []cli.Command{ | ||||
@@ -46,4 +36,5 @@ func main() { | |||||
cli.BoolFlag{"noterm", "disable color output"}, | cli.BoolFlag{"noterm", "disable color output"}, | ||||
}...) | }...) | ||||
app.Run(os.Args) | app.Run(os.Args) | ||||
println("wo cao???") | |||||
} | } |
@@ -7,6 +7,7 @@ package models | |||||
import ( | import ( | ||||
"fmt" | "fmt" | ||||
"os" | "os" | ||||
"os/user" | |||||
_ "github.com/go-sql-driver/mysql" | _ "github.com/go-sql-driver/mysql" | ||||
"github.com/lunny/xorm" | "github.com/lunny/xorm" | ||||
@@ -47,18 +48,27 @@ func setEngine() { | |||||
dbUser := utils.Cfg.MustValue("database", "USER") | dbUser := utils.Cfg.MustValue("database", "USER") | ||||
dbPwd := utils.Cfg.MustValue("database", "PASSWD") | dbPwd := utils.Cfg.MustValue("database", "PASSWD") | ||||
var err error | |||||
uname, err := user.Current() | |||||
if err != nil { | |||||
fmt.Printf("models.init -> fail to get user: %s\n", err) | |||||
os.Exit(2) | |||||
} | |||||
if uname.Username == "jiahuachen" { | |||||
dbPwd = utils.Cfg.MustValue("database", "PASSWD_jiahua") | |||||
} | |||||
switch dbType { | switch dbType { | ||||
case "mysql": | case "mysql": | ||||
orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%v:%v@%v/%v?charset=utf8", | orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%v:%v@%v/%v?charset=utf8", | ||||
dbUser, dbPwd, dbHost, dbName)) | dbUser, dbPwd, dbHost, dbName)) | ||||
default: | default: | ||||
log.Critical("Unknown database type: %s", dbType) | |||||
fmt.Printf("Unknown database type: %s\n", dbType) | |||||
os.Exit(2) | os.Exit(2) | ||||
} | } | ||||
if err != nil { | if err != nil { | ||||
log.Critical("models.init -> Conntect database: %s", dbType) | |||||
fmt.Printf("models.init -> fail to conntect database: %s\n", dbType) | |||||
os.Exit(2) | os.Exit(2) | ||||
} | } | ||||
@@ -73,7 +83,7 @@ func init() { | |||||
setEngine() | setEngine() | ||||
err := orm.Sync(new(User), new(PublicKey), new(Repo), new(Access)) | err := orm.Sync(new(User), new(PublicKey), new(Repo), new(Access)) | ||||
if err != nil { | if err != nil { | ||||
log.Error("sync database struct error: %s", err) | |||||
os.Exit(1) | |||||
fmt.Printf("sync database struct error: %s\n", err) | |||||
os.Exit(2) | |||||
} | } | ||||
} | } |
@@ -77,7 +77,7 @@ func CreateRepository(user *User, reposName string) (*Repo, error) { | |||||
return &repo, nil | return &repo, nil | ||||
} | } | ||||
// list one user's repository | |||||
// GetRepositories returns the list of repositories of given user. | |||||
func GetRepositories(user *User) ([]Repo, error) { | func GetRepositories(user *User) ([]Repo, error) { | ||||
repos := make([]Repo, 0) | repos := make([]Repo, 0) | ||||
err := orm.Find(&repos, &Repo{OwnerId: user.Id}) | err := orm.Find(&repos, &Repo{OwnerId: user.Id}) | ||||
@@ -74,6 +74,7 @@ type Action struct { | |||||
} | } | ||||
var ( | var ( | ||||
ErrUserOwnRepos = errors.New("User still have ownership of repositories") | |||||
ErrUserAlreadyExist = errors.New("User already exist") | ErrUserAlreadyExist = errors.New("User already exist") | ||||
ErrUserNotExist = errors.New("User does not exist") | ErrUserNotExist = errors.New("User does not exist") | ||||
) | ) | ||||
@@ -95,7 +96,6 @@ func RegisterUser(user *User) (err error) { | |||||
user.LowerName = strings.ToLower(user.Name) | user.LowerName = strings.ToLower(user.Name) | ||||
user.Avatar = utils.EncodeMd5(user.Email) | user.Avatar = utils.EncodeMd5(user.Email) | ||||
user.Created = time.Now() | |||||
user.Updated = time.Now() | user.Updated = time.Now() | ||||
user.EncodePasswd() | user.EncodePasswd() | ||||
_, err = orm.Insert(user) | _, err = orm.Insert(user) | ||||
@@ -110,8 +110,14 @@ func UpdateUser(user *User) (err error) { | |||||
// DeleteUser completely deletes everything of the user. | // DeleteUser completely deletes everything of the user. | ||||
func DeleteUser(user *User) error { | func DeleteUser(user *User) error { | ||||
// TODO: check if has ownership of any repository. | |||||
_, err := orm.Delete(user) | |||||
repos, err := GetRepositories(user) | |||||
if err != nil { | |||||
return errors.New("modesl.GetRepositories: " + err.Error()) | |||||
} else if len(repos) > 0 { | |||||
return ErrUserOwnRepos | |||||
} | |||||
_, err = orm.Delete(user) | |||||
// TODO: delete and update follower information. | // TODO: delete and update follower information. | ||||
return err | return err | ||||
} | } | ||||