mirror of
https://github.com/go-gitea/gitea
synced 2024-11-21 22:41:14 +01:00
Cleanup log messaging
This change corrects a few logging issues: * Standardized formatting errors with '%v'. * Standardized failure warning word usage. * Corrected an instance of using the standard log library when the gitea log library should be used instead.
This commit is contained in:
parent
73d05a51e3
commit
bf6f61cc69
26 changed files with 111 additions and 112 deletions
14
cmd/cert.go
14
cmd/cert.go
|
@ -82,7 +82,7 @@ func pemBlockForKey(priv interface{}) *pem.Block {
|
||||||
case *ecdsa.PrivateKey:
|
case *ecdsa.PrivateKey:
|
||||||
b, err := x509.MarshalECPrivateKey(k)
|
b, err := x509.MarshalECPrivateKey(k)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Unable to marshal ECDSA private key: %v\n", err)
|
log.Fatalf("Unable to marshal ECDSA private key: %v", err)
|
||||||
}
|
}
|
||||||
return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b}
|
return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b}
|
||||||
default:
|
default:
|
||||||
|
@ -112,7 +112,7 @@ func runCert(ctx *cli.Context) error {
|
||||||
log.Fatalf("Unrecognized elliptic curve: %q", ctx.String("ecdsa-curve"))
|
log.Fatalf("Unrecognized elliptic curve: %q", ctx.String("ecdsa-curve"))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to generate private key: %s", err)
|
log.Fatalf("Failed to generate private key: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var notBefore time.Time
|
var notBefore time.Time
|
||||||
|
@ -121,7 +121,7 @@ func runCert(ctx *cli.Context) error {
|
||||||
} else {
|
} else {
|
||||||
notBefore, err = time.Parse("Jan 2 15:04:05 2006", ctx.String("start-date"))
|
notBefore, err = time.Parse("Jan 2 15:04:05 2006", ctx.String("start-date"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to parse creation date: %s", err)
|
log.Fatalf("Failed to parse creation date: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ func runCert(ctx *cli.Context) error {
|
||||||
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
|
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
|
||||||
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
|
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to generate serial number: %s", err)
|
log.Fatalf("Failed to generate serial number: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
template := x509.Certificate{
|
template := x509.Certificate{
|
||||||
|
@ -163,12 +163,12 @@ func runCert(ctx *cli.Context) error {
|
||||||
|
|
||||||
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
|
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to create certificate: %s", err)
|
log.Fatalf("Failed to create certificate: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
certOut, err := os.Create("cert.pem")
|
certOut, err := os.Create("cert.pem")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to open cert.pem for writing: %s", err)
|
log.Fatalf("Failed to open cert.pem for writing: %v", err)
|
||||||
}
|
}
|
||||||
pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
|
pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
|
||||||
certOut.Close()
|
certOut.Close()
|
||||||
|
@ -176,7 +176,7 @@ func runCert(ctx *cli.Context) error {
|
||||||
|
|
||||||
keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
|
keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed to open key.pem for writing: %v\n", err)
|
log.Fatalf("Failed to open key.pem for writing: %v", err)
|
||||||
}
|
}
|
||||||
pem.Encode(keyOut, pemBlockForKey(priv))
|
pem.Encode(keyOut, pemBlockForKey(priv))
|
||||||
keyOut.Close()
|
keyOut.Close()
|
||||||
|
|
22
cmd/dump.go
22
cmd/dump.go
|
@ -68,7 +68,7 @@ func runDump(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
TmpWorkDir, err := ioutil.TempDir(tmpDir, "gitea-dump-")
|
TmpWorkDir, err := ioutil.TempDir(tmpDir, "gitea-dump-")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Fail to create tmp work directory: %v", err)
|
log.Fatalf("Failed to create tmp work directory: %v", err)
|
||||||
}
|
}
|
||||||
log.Printf("Creating tmp work dir: %s", TmpWorkDir)
|
log.Printf("Creating tmp work dir: %s", TmpWorkDir)
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ func runDump(ctx *cli.Context) error {
|
||||||
log.Printf("Dumping local repositories...%s", setting.RepoRootPath)
|
log.Printf("Dumping local repositories...%s", setting.RepoRootPath)
|
||||||
zip.Verbose = ctx.Bool("verbose")
|
zip.Verbose = ctx.Bool("verbose")
|
||||||
if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
|
if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
|
||||||
log.Fatalf("Fail to dump local repositories: %v", err)
|
log.Fatalf("Failed to dump local repositories: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
targetDBType := ctx.String("database")
|
targetDBType := ctx.String("database")
|
||||||
|
@ -89,26 +89,26 @@ func runDump(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := models.DumpDatabase(dbDump, targetDBType); err != nil {
|
if err := models.DumpDatabase(dbDump, targetDBType); err != nil {
|
||||||
log.Fatalf("Fail to dump database: %v", err)
|
log.Fatalf("Failed to dump database: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fileName := fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix())
|
fileName := fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix())
|
||||||
log.Printf("Packing dump files...")
|
log.Printf("Packing dump files...")
|
||||||
z, err := zip.Create(fileName)
|
z, err := zip.Create(fileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Fail to create %s: %v", fileName, err)
|
log.Fatalf("Failed to create %s: %v", fileName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := z.AddFile("gitea-repo.zip", reposDump); err != nil {
|
if err := z.AddFile("gitea-repo.zip", reposDump); err != nil {
|
||||||
log.Fatalf("Fail to include gitea-repo.zip: %v", err)
|
log.Fatalf("Failed to include gitea-repo.zip: %v", err)
|
||||||
}
|
}
|
||||||
if err := z.AddFile("gitea-db.sql", dbDump); err != nil {
|
if err := z.AddFile("gitea-db.sql", dbDump); err != nil {
|
||||||
log.Fatalf("Fail to include gitea-db.sql: %v", err)
|
log.Fatalf("Failed to include gitea-db.sql: %v", err)
|
||||||
}
|
}
|
||||||
customDir, err := os.Stat(setting.CustomPath)
|
customDir, err := os.Stat(setting.CustomPath)
|
||||||
if err == nil && customDir.IsDir() {
|
if err == nil && customDir.IsDir() {
|
||||||
if err := z.AddDir("custom", setting.CustomPath); err != nil {
|
if err := z.AddDir("custom", setting.CustomPath); err != nil {
|
||||||
log.Fatalf("Fail to include custom: %v", err)
|
log.Fatalf("Failed to include custom: %v", err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Printf("Custom dir %s doesn't exist, skipped", setting.CustomPath)
|
log.Printf("Custom dir %s doesn't exist, skipped", setting.CustomPath)
|
||||||
|
@ -124,16 +124,16 @@ func runDump(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := zipAddDirectoryExclude(z, "data", setting.AppDataPath, sessionAbsPath); err != nil {
|
if err := zipAddDirectoryExclude(z, "data", setting.AppDataPath, sessionAbsPath); err != nil {
|
||||||
log.Fatalf("Fail to include data directory: %v", err)
|
log.Fatalf("Failed to include data directory: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := z.AddDir("log", setting.LogRootPath); err != nil {
|
if err := z.AddDir("log", setting.LogRootPath); err != nil {
|
||||||
log.Fatalf("Fail to include log: %v", err)
|
log.Fatalf("Failed to include log: %v", err)
|
||||||
}
|
}
|
||||||
// FIXME: SSH key file.
|
// FIXME: SSH key file.
|
||||||
if err = z.Close(); err != nil {
|
if err = z.Close(); err != nil {
|
||||||
_ = os.Remove(fileName)
|
_ = os.Remove(fileName)
|
||||||
log.Fatalf("Fail to save %s: %v", fileName, err)
|
log.Fatalf("Failed to save %s: %v", fileName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.Chmod(fileName, 0600); err != nil {
|
if err := os.Chmod(fileName, 0600); err != nil {
|
||||||
|
@ -143,7 +143,7 @@ func runDump(ctx *cli.Context) error {
|
||||||
log.Printf("Removing tmp work dir: %s", TmpWorkDir)
|
log.Printf("Removing tmp work dir: %s", TmpWorkDir)
|
||||||
|
|
||||||
if err := os.RemoveAll(TmpWorkDir); err != nil {
|
if err := os.RemoveAll(TmpWorkDir); err != nil {
|
||||||
log.Fatalf("Fail to remove %s: %v", TmpWorkDir, err)
|
log.Fatalf("Failed to remove %s: %v", TmpWorkDir, err)
|
||||||
}
|
}
|
||||||
log.Printf("Finish dumping in file %s", fileName)
|
log.Printf("Finish dumping in file %s", fileName)
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ func setup(logPath string) {
|
||||||
if setting.UseSQLite3 || setting.UseTiDB {
|
if setting.UseSQLite3 || setting.UseTiDB {
|
||||||
workDir, _ := setting.WorkDir()
|
workDir, _ := setting.WorkDir()
|
||||||
if err := os.Chdir(workDir); err != nil {
|
if err := os.Chdir(workDir); err != nil {
|
||||||
log.GitLogger.Fatal(4, "Fail to change directory %s: %v", workDir, err)
|
log.GitLogger.Fatal(4, "Failed to change directory %s: %v", workDir, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,10 +134,10 @@ func handleUpdateTask(uuid string, user, repoUser *models.User, reponame string,
|
||||||
if err == nil {
|
if err == nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
if resp.StatusCode/100 != 2 {
|
if resp.StatusCode/100 != 2 {
|
||||||
log.GitLogger.Error(2, "Fail to trigger task: not 2xx response code")
|
log.GitLogger.Error(2, "Failed to trigger task: not 2xx response code")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.GitLogger.Error(2, "Fail to trigger task: %v", err)
|
log.GitLogger.Error(2, "Failed to trigger task: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ func runServ(c *cli.Context) error {
|
||||||
|
|
||||||
mode, err := models.AccessLevel(user, repo)
|
mode, err := models.AccessLevel(user, repo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fail("Internal error", "Fail to check access: %v", err)
|
fail("Internal error", "Failed to check access: %v", err)
|
||||||
} else if mode < requestedMode {
|
} else if mode < requestedMode {
|
||||||
clientMessage := accessDenied
|
clientMessage := accessDenied
|
||||||
if mode >= models.AccessModeRead {
|
if mode >= models.AccessModeRead {
|
||||||
|
|
|
@ -114,7 +114,7 @@ func newMacaron() *macaron.Macaron {
|
||||||
localeNames, err := options.Dir("locale")
|
localeNames, err := options.Dir("locale")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to list locale files: %v", err)
|
log.Fatal(4, "Failed to list locale files: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
localFiles := make(map[string][]byte)
|
localFiles := make(map[string][]byte)
|
||||||
|
@ -655,7 +655,7 @@ func runWeb(ctx *cli.Context) error {
|
||||||
err = fcgi.Serve(nil, m)
|
err = fcgi.Serve(nil, m)
|
||||||
case setting.UnixSocket:
|
case setting.UnixSocket:
|
||||||
if err := os.Remove(listenAddr); err != nil {
|
if err := os.Remove(listenAddr); err != nil {
|
||||||
log.Fatal(4, "Fail to remove unix socket directory %s: %v", listenAddr, err)
|
log.Fatal(4, "Failed to remove unix socket directory %s: %v", listenAddr, err)
|
||||||
}
|
}
|
||||||
var listener *net.UnixListener
|
var listener *net.UnixListener
|
||||||
listener, err = net.ListenUnix("unix", &net.UnixAddr{Name: listenAddr, Net: "unix"})
|
listener, err = net.ListenUnix("unix", &net.UnixAddr{Name: listenAddr, Net: "unix"})
|
||||||
|
@ -674,7 +674,7 @@ func runWeb(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to start server: %v", err)
|
log.Fatal(4, "Failed to start server: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -8,9 +8,9 @@ package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"log"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/modules/log"
|
||||||
"github.com/facebookgo/grace/gracehttp"
|
"github.com/facebookgo/grace/gracehttp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
2
main.go
2
main.go
|
@ -38,7 +38,7 @@ func main() {
|
||||||
app.Flags = append(app.Flags, []cli.Flag{}...)
|
app.Flags = append(app.Flags, []cli.Flag{}...)
|
||||||
err := app.Run(os.Args)
|
err := app.Run(os.Args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to run app with %s: %v", os.Args, err)
|
log.Fatal(4, "Failed to run app with %s: %v", os.Args, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -328,7 +328,7 @@ func attachmentRefactor(x *xorm.Engine) error {
|
||||||
|
|
||||||
dumpPath := path.Join(setting.LogRootPath, "attachment_path.dump")
|
dumpPath := path.Join(setting.LogRootPath, "attachment_path.dump")
|
||||||
ioutil.WriteFile(dumpPath, buf.Bytes(), 0666)
|
ioutil.WriteFile(dumpPath, buf.Bytes(), 0666)
|
||||||
fmt.Println("Fail to rename some attachments, old and new paths are saved into:", dumpPath)
|
log.Info("Failed to rename some attachments, old and new paths are saved into: %s", dumpPath)
|
||||||
}()
|
}()
|
||||||
for _, attach := range attachments {
|
for _, attach := range attachments {
|
||||||
if err = os.MkdirAll(path.Dir(attach.NewPath), os.ModePerm); err != nil {
|
if err = os.MkdirAll(path.Dir(attach.NewPath), os.ModePerm); err != nil {
|
||||||
|
|
|
@ -205,7 +205,7 @@ func getEngine() (*xorm.Engine, error) {
|
||||||
return nil, errors.New("this binary version does not build support for SQLite3")
|
return nil, errors.New("this binary version does not build support for SQLite3")
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm); err != nil {
|
if err := os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm); err != nil {
|
||||||
return nil, fmt.Errorf("Fail to create directories: %v", err)
|
return nil, fmt.Errorf("Failed to create directories: %v", err)
|
||||||
}
|
}
|
||||||
connStr = "file:" + DbCfg.Path + "?cache=shared&mode=rwc"
|
connStr = "file:" + DbCfg.Path + "?cache=shared&mode=rwc"
|
||||||
case "tidb":
|
case "tidb":
|
||||||
|
@ -213,7 +213,7 @@ func getEngine() (*xorm.Engine, error) {
|
||||||
return nil, errors.New("this binary version does not build support for TiDB")
|
return nil, errors.New("this binary version does not build support for TiDB")
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm); err != nil {
|
if err := os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm); err != nil {
|
||||||
return nil, fmt.Errorf("Fail to create directories: %v", err)
|
return nil, fmt.Errorf("Failed to create directories: %v", err)
|
||||||
}
|
}
|
||||||
connStr = "goleveldb://" + DbCfg.Path
|
connStr = "goleveldb://" + DbCfg.Path
|
||||||
default:
|
default:
|
||||||
|
@ -237,7 +237,7 @@ func NewTestEngine(x *xorm.Engine) (err error) {
|
||||||
func SetEngine() (err error) {
|
func SetEngine() (err error) {
|
||||||
x, err = getEngine()
|
x, err = getEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Fail to connect to database: %v", err)
|
return fmt.Errorf("Failed to connect to database: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
x.SetMapper(core.GonicMapper{})
|
x.SetMapper(core.GonicMapper{})
|
||||||
|
@ -247,12 +247,12 @@ func SetEngine() (err error) {
|
||||||
logPath := path.Join(setting.LogRootPath, "xorm.log")
|
logPath := path.Join(setting.LogRootPath, "xorm.log")
|
||||||
|
|
||||||
if err := os.MkdirAll(path.Dir(logPath), os.ModePerm); err != nil {
|
if err := os.MkdirAll(path.Dir(logPath), os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", logPath, err)
|
return fmt.Errorf("Failed to create dir %s: %v", logPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Create(logPath)
|
f, err := os.Create(logPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Fail to create xorm.log: %v", err)
|
return fmt.Errorf("Failed to create xorm.log: %v", err)
|
||||||
}
|
}
|
||||||
x.SetLogger(xorm.NewSimpleLogger(f))
|
x.SetLogger(xorm.NewSimpleLogger(f))
|
||||||
x.ShowSQL(true)
|
x.ShowSQL(true)
|
||||||
|
|
|
@ -272,13 +272,13 @@ func deleteOrg(e *xorm.Session, u *User) error {
|
||||||
path := UserPath(u.Name)
|
path := UserPath(u.Name)
|
||||||
|
|
||||||
if err := os.RemoveAll(path); err != nil {
|
if err := os.RemoveAll(path); err != nil {
|
||||||
return fmt.Errorf("Fail to RemoveAll %s: %v", path, err)
|
return fmt.Errorf("Failed to RemoveAll %s: %v", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
avatarPath := u.CustomAvatarPath()
|
avatarPath := u.CustomAvatarPath()
|
||||||
if com.IsExist(avatarPath) {
|
if com.IsExist(avatarPath) {
|
||||||
if err := os.Remove(avatarPath); err != nil {
|
if err := os.Remove(avatarPath); err != nil {
|
||||||
return fmt.Errorf("Fail to remove %s: %v", avatarPath, err)
|
return fmt.Errorf("Failed to remove %s: %v", avatarPath, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -275,7 +275,7 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error
|
||||||
tmpBasePath := path.Join(setting.AppDataPath, "tmp/repos", com.ToStr(time.Now().Nanosecond())+".git")
|
tmpBasePath := path.Join(setting.AppDataPath, "tmp/repos", com.ToStr(time.Now().Nanosecond())+".git")
|
||||||
|
|
||||||
if err := os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm); err != nil {
|
if err := os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", tmpBasePath, err)
|
return fmt.Errorf("Failed to create dir %s: %v", tmpBasePath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer os.RemoveAll(path.Dir(tmpBasePath))
|
defer os.RemoveAll(path.Dir(tmpBasePath))
|
||||||
|
|
|
@ -83,13 +83,13 @@ func LoadRepoConfig() {
|
||||||
for i, t := range types {
|
for i, t := range types {
|
||||||
files, err := options.Dir(t)
|
files, err := options.Dir(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to get %s files: %v", t, err)
|
log.Fatal(4, "Failed to get %s files: %v", t, err)
|
||||||
}
|
}
|
||||||
customPath := path.Join(setting.CustomPath, "options", t)
|
customPath := path.Join(setting.CustomPath, "options", t)
|
||||||
if com.IsDir(customPath) {
|
if com.IsDir(customPath) {
|
||||||
customFiles, err := com.StatDir(customPath)
|
customFiles, err := com.StatDir(customPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to get custom %s files: %v", t, err)
|
log.Fatal(4, "Failed to get custom %s files: %v", t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, f := range customFiles {
|
for _, f := range customFiles {
|
||||||
|
@ -131,13 +131,13 @@ func NewRepoContext() {
|
||||||
|
|
||||||
// Check Git installation.
|
// Check Git installation.
|
||||||
if _, err := exec.LookPath("git"); err != nil {
|
if _, err := exec.LookPath("git"); err != nil {
|
||||||
log.Fatal(4, "Fail to test 'git' command: %v (forgotten install?)", err)
|
log.Fatal(4, "Failed to test 'git' command: %v (forgotten install?)", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check Git version.
|
// Check Git version.
|
||||||
gitVer, err := git.BinVersion()
|
gitVer, err := git.BinVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to get Git version: %v", err)
|
log.Fatal(4, "Failed to get Git version: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Git Version: %s", gitVer)
|
log.Info("Git Version: %s", gitVer)
|
||||||
|
@ -151,11 +151,11 @@ func NewRepoContext() {
|
||||||
// ExitError indicates this config is not set
|
// ExitError indicates this config is not set
|
||||||
if _, ok := err.(*exec.ExitError); ok || strings.TrimSpace(stdout) == "" {
|
if _, ok := err.(*exec.ExitError); ok || strings.TrimSpace(stdout) == "" {
|
||||||
if _, stderr, gerr := process.GetManager().Exec("NewRepoContext(set "+configKey+")", "git", "config", "--global", configKey, defaultValue); gerr != nil {
|
if _, stderr, gerr := process.GetManager().Exec("NewRepoContext(set "+configKey+")", "git", "config", "--global", configKey, defaultValue); gerr != nil {
|
||||||
log.Fatal(4, "Fail to set git %s(%s): %s", configKey, gerr, stderr)
|
log.Fatal(4, "Failed to set git %s(%s): %s", configKey, gerr, stderr)
|
||||||
}
|
}
|
||||||
log.Info("Git config %s set to %s", configKey, defaultValue)
|
log.Info("Git config %s set to %s", configKey, defaultValue)
|
||||||
} else {
|
} else {
|
||||||
log.Fatal(4, "Fail to get git %s(%s): %s", configKey, err, stderr)
|
log.Fatal(4, "Failed to get git %s(%s): %s", configKey, err, stderr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ func NewRepoContext() {
|
||||||
// Set git some configurations.
|
// Set git some configurations.
|
||||||
if _, stderr, err := process.GetManager().Exec("NewRepoContext(git config --global core.quotepath false)",
|
if _, stderr, err := process.GetManager().Exec("NewRepoContext(git config --global core.quotepath false)",
|
||||||
"git", "config", "--global", "core.quotepath", "false"); err != nil {
|
"git", "config", "--global", "core.quotepath", "false"); err != nil {
|
||||||
log.Fatal(4, "Fail to execute 'git config --global core.quotepath false': %s", stderr)
|
log.Fatal(4, "Failed to execute 'git config --global core.quotepath false': %s", stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveAllWithNotice("Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp"))
|
RemoveAllWithNotice("Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp"))
|
||||||
|
@ -566,7 +566,7 @@ func (repo *Repository) SavePatch(index int64, patch []byte) error {
|
||||||
dir := filepath.Dir(patchPath)
|
dir := filepath.Dir(patchPath)
|
||||||
|
|
||||||
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", dir, err)
|
return fmt.Errorf("Failed to create dir %s: %v", dir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = ioutil.WriteFile(patchPath, patch, 0644); err != nil {
|
if err = ioutil.WriteFile(patchPath, patch, 0644); err != nil {
|
||||||
|
@ -679,7 +679,7 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) {
|
||||||
migrateTimeout := time.Duration(setting.Git.Timeout.Migrate) * time.Second
|
migrateTimeout := time.Duration(setting.Git.Timeout.Migrate) * time.Second
|
||||||
|
|
||||||
if err := os.RemoveAll(repoPath); err != nil {
|
if err := os.RemoveAll(repoPath); err != nil {
|
||||||
return repo, fmt.Errorf("Fail to remove %s: %v", repoPath, err)
|
return repo, fmt.Errorf("Failed to remove %s: %v", repoPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = git.Clone(opts.RemoteAddr, repoPath, git.CloneRepoOptions{
|
if err = git.Clone(opts.RemoteAddr, repoPath, git.CloneRepoOptions{
|
||||||
|
@ -693,7 +693,7 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) {
|
||||||
wikiRemotePath := wikiRemoteURL(opts.RemoteAddr)
|
wikiRemotePath := wikiRemoteURL(opts.RemoteAddr)
|
||||||
if len(wikiRemotePath) > 0 {
|
if len(wikiRemotePath) > 0 {
|
||||||
if err := os.RemoveAll(wikiPath); err != nil {
|
if err := os.RemoveAll(wikiPath); err != nil {
|
||||||
return repo, fmt.Errorf("Fail to remove %s: %v", wikiPath, err)
|
return repo, fmt.Errorf("Failed to remove %s: %v", wikiPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = git.Clone(wikiRemotePath, wikiPath, git.CloneRepoOptions{
|
if err = git.Clone(wikiRemotePath, wikiPath, git.CloneRepoOptions{
|
||||||
|
@ -704,7 +704,7 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) {
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Warn("Clone wiki: %v", err)
|
log.Warn("Clone wiki: %v", err)
|
||||||
if err := os.RemoveAll(wikiPath); err != nil {
|
if err := os.RemoveAll(wikiPath); err != nil {
|
||||||
return repo, fmt.Errorf("Fail to remove %s: %v", wikiPath, err)
|
return repo, fmt.Errorf("Failed to remove %s: %v", wikiPath, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -938,7 +938,7 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, opts C
|
||||||
if opts.AutoInit {
|
if opts.AutoInit {
|
||||||
|
|
||||||
if err := os.MkdirAll(tmpDir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(tmpDir, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", tmpDir, err)
|
return fmt.Errorf("Failed to create dir %s: %v", tmpDir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
@ -1243,7 +1243,7 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
|
||||||
dir := UserPath(newOwner.Name)
|
dir := UserPath(newOwner.Name)
|
||||||
|
|
||||||
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", dir, err)
|
return fmt.Errorf("Failed to create dir %s: %v", dir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newOwner.Name, repo.Name)); err != nil {
|
if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newOwner.Name, repo.Name)); err != nil {
|
||||||
|
@ -1818,7 +1818,7 @@ func GitFsck() {
|
||||||
repo := bean.(*Repository)
|
repo := bean.(*Repository)
|
||||||
repoPath := repo.RepoPath()
|
repoPath := repo.RepoPath()
|
||||||
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
|
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
|
||||||
desc := fmt.Sprintf("Fail to health check repository (%s): %v", repoPath, err)
|
desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err)
|
||||||
log.Warn(desc)
|
log.Warn(desc)
|
||||||
if err = CreateRepositoryNotice(desc); err != nil {
|
if err = CreateRepositoryNotice(desc); err != nil {
|
||||||
log.Error(4, "CreateRepositoryNotice: %v", err)
|
log.Error(4, "CreateRepositoryNotice: %v", err)
|
||||||
|
|
|
@ -107,7 +107,7 @@ func (repo *Repository) UpdateRepoFile(doer *User, opts UpdateRepoFileOptions) (
|
||||||
dir := path.Dir(filePath)
|
dir := path.Dir(filePath)
|
||||||
|
|
||||||
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", dir, err)
|
return fmt.Errorf("Failed to create dir %s: %v", dir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it's meant to be a new file, make sure it doesn't exist.
|
// If it's meant to be a new file, make sure it doesn't exist.
|
||||||
|
@ -192,7 +192,7 @@ func (repo *Repository) GetDiffPreview(branch, treePath, content string) (diff *
|
||||||
dir := filepath.Dir(filePath)
|
dir := filepath.Dir(filePath)
|
||||||
|
|
||||||
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
||||||
return nil, fmt.Errorf("Fail to create dir %s: %v", dir, err)
|
return nil, fmt.Errorf("Failed to create dir %s: %v", dir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = ioutil.WriteFile(filePath, []byte(content), 0666); err != nil {
|
if err = ioutil.WriteFile(filePath, []byte(content), 0666); err != nil {
|
||||||
|
@ -486,7 +486,7 @@ func (repo *Repository) UploadRepoFiles(doer *User, opts UploadRepoFileOptions)
|
||||||
dirPath := path.Join(localPath, opts.TreePath)
|
dirPath := path.Join(localPath, opts.TreePath)
|
||||||
|
|
||||||
if err := os.MkdirAll(dirPath, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dirPath, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", dirPath, err)
|
return fmt.Errorf("Failed to create dir %s: %v", dirPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy uploaded files into repository.
|
// Copy uploaded files into repository.
|
||||||
|
|
|
@ -140,7 +140,7 @@ func (m *Mirror) runSync() bool {
|
||||||
if _, stderr, err := process.GetManager().ExecDir(
|
if _, stderr, err := process.GetManager().ExecDir(
|
||||||
timeout, repoPath, fmt.Sprintf("Mirror.runSync: %s", repoPath),
|
timeout, repoPath, fmt.Sprintf("Mirror.runSync: %s", repoPath),
|
||||||
"git", gitArgs...); err != nil {
|
"git", gitArgs...); err != nil {
|
||||||
desc := fmt.Sprintf("Fail to update mirror repository '%s': %s", repoPath, stderr)
|
desc := fmt.Sprintf("Failed to update mirror repository '%s': %s", repoPath, stderr)
|
||||||
log.Error(4, desc)
|
log.Error(4, desc)
|
||||||
if err = CreateRepositoryNotice(desc); err != nil {
|
if err = CreateRepositoryNotice(desc); err != nil {
|
||||||
log.Error(4, "CreateRepositoryNotice: %v", err)
|
log.Error(4, "CreateRepositoryNotice: %v", err)
|
||||||
|
@ -151,7 +151,7 @@ func (m *Mirror) runSync() bool {
|
||||||
if _, stderr, err := process.GetManager().ExecDir(
|
if _, stderr, err := process.GetManager().ExecDir(
|
||||||
timeout, wikiPath, fmt.Sprintf("Mirror.runSync: %s", wikiPath),
|
timeout, wikiPath, fmt.Sprintf("Mirror.runSync: %s", wikiPath),
|
||||||
"git", "remote", "update", "--prune"); err != nil {
|
"git", "remote", "update", "--prune"); err != nil {
|
||||||
desc := fmt.Sprintf("Fail to update mirror wiki repository '%s': %s", wikiPath, stderr)
|
desc := fmt.Sprintf("Failed to update mirror wiki repository '%s': %s", wikiPath, stderr)
|
||||||
log.Error(4, desc)
|
log.Error(4, desc)
|
||||||
if err = CreateRepositoryNotice(desc); err != nil {
|
if err = CreateRepositoryNotice(desc); err != nil {
|
||||||
log.Error(4, "CreateRepositoryNotice: %v", err)
|
log.Error(4, "CreateRepositoryNotice: %v", err)
|
||||||
|
|
|
@ -376,7 +376,7 @@ func addKey(e Engine, key *PublicKey) (err error) {
|
||||||
dir := path.Dir(tmpPath)
|
dir := path.Dir(tmpPath)
|
||||||
|
|
||||||
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", dir, err)
|
return fmt.Errorf("Failed to create dir %s: %v", dir, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = ioutil.WriteFile(tmpPath, []byte(key.Content), 0644); err != nil {
|
if err = ioutil.WriteFile(tmpPath, []byte(key.Content), 0644); err != nil {
|
||||||
|
|
|
@ -102,7 +102,7 @@ func PushUpdate(opts PushUpdateOptions) (err error) {
|
||||||
gitUpdate := exec.Command("git", "update-server-info")
|
gitUpdate := exec.Command("git", "update-server-info")
|
||||||
gitUpdate.Dir = repoPath
|
gitUpdate.Dir = repoPath
|
||||||
if err = gitUpdate.Run(); err != nil {
|
if err = gitUpdate.Run(); err != nil {
|
||||||
return fmt.Errorf("Fail to call 'git update-server-info': %v", err)
|
return fmt.Errorf("Failed to call 'git update-server-info': %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if isDelRef {
|
if isDelRef {
|
||||||
|
|
|
@ -414,7 +414,7 @@ func (u *User) UploadAvatar(data []byte) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll(setting.AvatarUploadPath, os.ModePerm); err != nil {
|
if err := os.MkdirAll(setting.AvatarUploadPath, os.ModePerm); err != nil {
|
||||||
return fmt.Errorf("Fail to create dir %s: %v", setting.AvatarUploadPath, err)
|
return fmt.Errorf("Failed to create dir %s: %v", setting.AvatarUploadPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fw, err := os.Create(u.CustomAvatarPath())
|
fw, err := os.Create(u.CustomAvatarPath())
|
||||||
|
@ -435,7 +435,7 @@ func (u *User) DeleteAvatar() error {
|
||||||
log.Trace("DeleteAvatar[%d]: %s", u.ID, u.CustomAvatarPath())
|
log.Trace("DeleteAvatar[%d]: %s", u.ID, u.CustomAvatarPath())
|
||||||
|
|
||||||
if err := os.Remove(u.CustomAvatarPath()); err != nil {
|
if err := os.Remove(u.CustomAvatarPath()); err != nil {
|
||||||
return fmt.Errorf("Fail to remove %s: %v", u.CustomAvatarPath(), err)
|
return fmt.Errorf("Failed to remove %s: %v", u.CustomAvatarPath(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
u.UseCustomAvatar = false
|
u.UseCustomAvatar = false
|
||||||
|
@ -924,13 +924,13 @@ func deleteUser(e *xorm.Session, u *User) error {
|
||||||
path := UserPath(u.Name)
|
path := UserPath(u.Name)
|
||||||
|
|
||||||
if err := os.RemoveAll(path); err != nil {
|
if err := os.RemoveAll(path); err != nil {
|
||||||
return fmt.Errorf("Fail to RemoveAll %s: %v", path, err)
|
return fmt.Errorf("Failed to RemoveAll %s: %v", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
avatarPath := u.CustomAvatarPath()
|
avatarPath := u.CustomAvatarPath()
|
||||||
if com.IsExist(avatarPath) {
|
if com.IsExist(avatarPath) {
|
||||||
if err := os.Remove(avatarPath); err != nil {
|
if err := os.Remove(avatarPath); err != nil {
|
||||||
return fmt.Errorf("Fail to remove %s: %v", avatarPath, err)
|
return fmt.Errorf("Failed to remove %s: %v", avatarPath, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ func (repo *Repository) updateWikiPage(doer *User, oldWikiPath, wikiPath, conten
|
||||||
file := path.Join(localPath, oldWikiPath+".md")
|
file := path.Join(localPath, oldWikiPath+".md")
|
||||||
|
|
||||||
if err := os.Remove(file); err != nil {
|
if err := os.Remove(file); err != nil {
|
||||||
return fmt.Errorf("Fail to remove %s: %v", file, err)
|
return fmt.Errorf("Failed to remove %s: %v", file, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ func (repo *Repository) DeleteWikiPage(doer *User, wikiPath string) (err error)
|
||||||
filename := path.Join(localPath, wikiPath+".md")
|
filename := path.Join(localPath, wikiPath+".md")
|
||||||
|
|
||||||
if err := os.Remove(filename); err != nil {
|
if err := os.Remove(filename); err != nil {
|
||||||
return fmt.Errorf("Fail to remove %s: %v", filename, err)
|
return fmt.Errorf("Failed to remove %s: %v", filename, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
title := ToWikiPageName(wikiPath)
|
title := ToWikiPageName(wikiPath)
|
||||||
|
|
|
@ -110,7 +110,7 @@ func GetRandomBytesAsBase64(n int) string {
|
||||||
_, err := io.ReadFull(rand.Reader, bytes)
|
_, err := io.ReadFull(rand.Reader, bytes)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error reading random bytes: %s", err)
|
log.Fatal(4, "Error reading random bytes: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return base64.RawURLEncoding.EncodeToString(bytes)
|
return base64.RawURLEncoding.EncodeToString(bytes)
|
||||||
|
|
|
@ -151,7 +151,7 @@ func (w *FileLogWriter) initFd() error {
|
||||||
fd := w.mw.fd
|
fd := w.mw.fd
|
||||||
finfo, err := fd.Stat()
|
finfo, err := fd.Stat()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("get stat: %s", err)
|
return fmt.Errorf("get stat: %v", err)
|
||||||
}
|
}
|
||||||
w.maxsizeCursize = int(finfo.Size())
|
w.maxsizeCursize = int(finfo.Size())
|
||||||
w.dailyOpenDate = time.Now().Day()
|
w.dailyOpenDate = time.Now().Day()
|
||||||
|
@ -194,12 +194,12 @@ func (w *FileLogWriter) DoRotate() error {
|
||||||
// close fd before rename
|
// close fd before rename
|
||||||
// Rename the file to its newfound home
|
// Rename the file to its newfound home
|
||||||
if err = os.Rename(w.Filename, fname); err != nil {
|
if err = os.Rename(w.Filename, fname); err != nil {
|
||||||
return fmt.Errorf("Rotate: %s", err)
|
return fmt.Errorf("Rotate: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// re-start logger
|
// re-start logger
|
||||||
if err = w.StartLogger(); err != nil {
|
if err = w.StartLogger(); err != nil {
|
||||||
return fmt.Errorf("Rotate StartLogger: %s", err)
|
return fmt.Errorf("Rotate StartLogger: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
go w.deleteOldLog()
|
go w.deleteOldLog()
|
||||||
|
@ -221,7 +221,7 @@ func (w *FileLogWriter) deleteOldLog() {
|
||||||
if strings.HasPrefix(filepath.Base(path), filepath.Base(w.Filename)) {
|
if strings.HasPrefix(filepath.Base(path), filepath.Base(w.Filename)) {
|
||||||
|
|
||||||
if err := os.Remove(path); err != nil {
|
if err := os.Remove(path); err != nil {
|
||||||
returnErr = fmt.Errorf("Fail to remove %s: %v", path, err)
|
returnErr = fmt.Errorf("Failed to remove %s: %v", path, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ func NewLogger(bufLen int64, mode, config string) {
|
||||||
loggers = append(loggers, logger)
|
loggers = append(loggers, logger)
|
||||||
}
|
}
|
||||||
if err := logger.SetLogger(mode, config); err != nil {
|
if err := logger.SetLogger(mode, config); err != nil {
|
||||||
Fatal(2, "Fail to set logger (%s): %v", mode, err)
|
Fatal(2, "Failed to set logger (%s): %v", mode, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ func NewGitLogger(logPath string) {
|
||||||
path := path.Dir(logPath)
|
path := path.Dir(logPath)
|
||||||
|
|
||||||
if err := os.MkdirAll(path, os.ModePerm); err != nil {
|
if err := os.MkdirAll(path, os.ModePerm); err != nil {
|
||||||
Fatal(4, "Fail to create dir %s: %v", path, err)
|
Fatal(4, "Failed to create dir %s: %v", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
GitLogger = newLogger(0)
|
GitLogger = newLogger(0)
|
||||||
|
|
|
@ -241,7 +241,7 @@ func processMailQueue() {
|
||||||
case msg := <-mailQueue:
|
case msg := <-mailQueue:
|
||||||
log.Trace("New e-mail sending request %s: %s", msg.GetHeader("To"), msg.Info)
|
log.Trace("New e-mail sending request %s: %s", msg.GetHeader("To"), msg.Info)
|
||||||
if err := gomail.Send(Sender, msg.Message); err != nil {
|
if err := gomail.Send(Sender, msg.Message); err != nil {
|
||||||
log.Error(3, "Fail to send emails %s: %s - %v", msg.GetHeader("To"), msg.Info, err)
|
log.Error(3, "Failed to send emails %s: %s - %v", msg.GetHeader("To"), msg.Info, err)
|
||||||
} else {
|
} else {
|
||||||
log.Trace("E-mails sent %s: %s", msg.GetHeader("To"), msg.Info)
|
log.Trace("E-mails sent %s: %s", msg.GetHeader("To"), msg.Info)
|
||||||
}
|
}
|
||||||
|
|
|
@ -431,7 +431,7 @@ func init() {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if AppPath, err = execPath(); err != nil {
|
if AppPath, err = execPath(); err != nil {
|
||||||
log.Fatal(4, "fail to get app path: %v\n", err)
|
log.Fatal(4, "Failed to get app path: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: we don't use path.Dir here because it does not handle case
|
// Note: we don't use path.Dir here because it does not handle case
|
||||||
|
@ -483,16 +483,16 @@ func IsRunUserMatchCurrentUser(runUser string) (string, bool) {
|
||||||
func createPIDFile(pidPath string) {
|
func createPIDFile(pidPath string) {
|
||||||
currentPid := os.Getpid()
|
currentPid := os.Getpid()
|
||||||
if err := os.MkdirAll(filepath.Dir(pidPath), os.ModePerm); err != nil {
|
if err := os.MkdirAll(filepath.Dir(pidPath), os.ModePerm); err != nil {
|
||||||
log.Fatal(4, "Can't create PID folder on %s", err)
|
log.Fatal(4, "Failed to create PID folder: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
file, err := os.Create(pidPath)
|
file, err := os.Create(pidPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Can't create PID file: %v", err)
|
log.Fatal(4, "Failed to create PID file: %v", err)
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
if _, err := file.WriteString(strconv.FormatInt(int64(currentPid), 10)); err != nil {
|
if _, err := file.WriteString(strconv.FormatInt(int64(currentPid), 10)); err != nil {
|
||||||
log.Fatal(4, "Can'write PID information on %s", err)
|
log.Fatal(4, "Failed to write PID information: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -501,13 +501,13 @@ func createPIDFile(pidPath string) {
|
||||||
func NewContext() {
|
func NewContext() {
|
||||||
workDir, err := WorkDir()
|
workDir, err := WorkDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to get work directory: %v", err)
|
log.Fatal(4, "Failed to get work directory: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
Cfg = ini.Empty()
|
Cfg = ini.Empty()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to parse 'app.ini': %v", err)
|
log.Fatal(4, "Failed to parse 'app.ini': %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomPath = os.Getenv("GITEA_CUSTOM")
|
CustomPath = os.Getenv("GITEA_CUSTOM")
|
||||||
|
@ -533,7 +533,7 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
|
|
||||||
if com.IsFile(CustomConf) {
|
if com.IsFile(CustomConf) {
|
||||||
if err = Cfg.Append(CustomConf); err != nil {
|
if err = Cfg.Append(CustomConf); err != nil {
|
||||||
log.Fatal(4, "Fail to load custom conf '%s': %v", CustomConf, err)
|
log.Fatal(4, "Failed to load custom conf '%s': %v", CustomConf, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Warn("Custom config '%s' not found, ignore this if you're running first time", CustomConf)
|
log.Warn("Custom config '%s' not found, ignore this if you're running first time", CustomConf)
|
||||||
|
@ -542,7 +542,7 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
|
|
||||||
homeDir, err := com.HomeDir()
|
homeDir, err := com.HomeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to get home directory: %v", err)
|
log.Fatal(4, "Failed to get home directory: %v", err)
|
||||||
}
|
}
|
||||||
homeDir = strings.Replace(homeDir, "\\", "/", -1)
|
homeDir = strings.Replace(homeDir, "\\", "/", -1)
|
||||||
|
|
||||||
|
@ -578,7 +578,7 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
UnixSocketPermissionRaw := sec.Key("UNIX_SOCKET_PERMISSION").MustString("666")
|
UnixSocketPermissionRaw := sec.Key("UNIX_SOCKET_PERMISSION").MustString("666")
|
||||||
UnixSocketPermissionParsed, err := strconv.ParseUint(UnixSocketPermissionRaw, 8, 32)
|
UnixSocketPermissionParsed, err := strconv.ParseUint(UnixSocketPermissionRaw, 8, 32)
|
||||||
if err != nil || UnixSocketPermissionParsed > 0777 {
|
if err != nil || UnixSocketPermissionParsed > 0777 {
|
||||||
log.Fatal(4, "Fail to parse unixSocketPermission: %s", UnixSocketPermissionRaw)
|
log.Fatal(4, "Failed to parse unixSocketPermission: %s", UnixSocketPermissionRaw)
|
||||||
}
|
}
|
||||||
UnixSocketPermission = uint32(UnixSocketPermissionParsed)
|
UnixSocketPermission = uint32(UnixSocketPermissionParsed)
|
||||||
}
|
}
|
||||||
|
@ -602,7 +602,7 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
SSH.RootPath = path.Join(homeDir, ".ssh")
|
SSH.RootPath = path.Join(homeDir, ".ssh")
|
||||||
SSH.KeyTestPath = os.TempDir()
|
SSH.KeyTestPath = os.TempDir()
|
||||||
if err = Cfg.Section("server").MapTo(&SSH); err != nil {
|
if err = Cfg.Section("server").MapTo(&SSH); err != nil {
|
||||||
log.Fatal(4, "Fail to map SSH settings: %v", err)
|
log.Fatal(4, "Failed to map SSH settings: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
SSH.KeygenPath = sec.Key("SSH_KEYGEN_PATH").MustString("ssh-keygen")
|
SSH.KeygenPath = sec.Key("SSH_KEYGEN_PATH").MustString("ssh-keygen")
|
||||||
|
@ -616,9 +616,9 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
|
|
||||||
if !SSH.Disabled && !SSH.StartBuiltinServer {
|
if !SSH.Disabled && !SSH.StartBuiltinServer {
|
||||||
if err := os.MkdirAll(SSH.RootPath, 0700); err != nil {
|
if err := os.MkdirAll(SSH.RootPath, 0700); err != nil {
|
||||||
log.Fatal(4, "Fail to create '%s': %v", SSH.RootPath, err)
|
log.Fatal(4, "Failed to create '%s': %v", SSH.RootPath, err)
|
||||||
} else if err = os.MkdirAll(SSH.KeyTestPath, 0644); err != nil {
|
} else if err = os.MkdirAll(SSH.KeyTestPath, 0644); err != nil {
|
||||||
log.Fatal(4, "Fail to create '%s': %v", SSH.KeyTestPath, err)
|
log.Fatal(4, "Failed to create '%s': %v", SSH.KeyTestPath, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -632,13 +632,13 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = Cfg.Section("server").MapTo(&LFS); err != nil {
|
if err = Cfg.Section("server").MapTo(&LFS); err != nil {
|
||||||
log.Fatal(4, "Fail to map LFS settings: %v", err)
|
log.Fatal(4, "Failed to map LFS settings: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if LFS.StartServer {
|
if LFS.StartServer {
|
||||||
|
|
||||||
if err := os.MkdirAll(LFS.ContentPath, 0700); err != nil {
|
if err := os.MkdirAll(LFS.ContentPath, 0700); err != nil {
|
||||||
log.Fatal(4, "Fail to create '%s': %v", LFS.ContentPath, err)
|
log.Fatal(4, "Failed to create '%s': %v", LFS.ContentPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
LFS.JWTSecretBytes = make([]byte, 32)
|
LFS.JWTSecretBytes = make([]byte, 32)
|
||||||
|
@ -650,7 +650,7 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
_, err := io.ReadFull(rand.Reader, LFS.JWTSecretBytes)
|
_, err := io.ReadFull(rand.Reader, LFS.JWTSecretBytes)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error reading random bytes: %s", err)
|
log.Fatal(4, "Error reading random bytes: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
LFS.JWTSecretBase64 = base64.RawURLEncoding.EncodeToString(LFS.JWTSecretBytes)
|
LFS.JWTSecretBase64 = base64.RawURLEncoding.EncodeToString(LFS.JWTSecretBytes)
|
||||||
|
@ -660,14 +660,14 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
if com.IsFile(CustomConf) {
|
if com.IsFile(CustomConf) {
|
||||||
// Keeps custom settings if there is already something.
|
// Keeps custom settings if there is already something.
|
||||||
if err := cfg.Append(CustomConf); err != nil {
|
if err := cfg.Append(CustomConf); err != nil {
|
||||||
log.Error(4, "Fail to load custom conf '%s': %v", CustomConf, err)
|
log.Error(4, "Failed to load custom conf '%s': %v", CustomConf, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
|
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
|
||||||
|
|
||||||
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
||||||
log.Fatal(4, "Fail to create '%s': %v", CustomConf, err)
|
log.Fatal(4, "Failed to create '%s': %v", CustomConf, err)
|
||||||
}
|
}
|
||||||
if err := cfg.SaveTo(CustomConf); err != nil {
|
if err := cfg.SaveTo(CustomConf); err != nil {
|
||||||
log.Fatal(4, "Error saving generated JWT Secret to custom config: %v", err)
|
log.Fatal(4, "Error saving generated JWT Secret to custom config: %v", err)
|
||||||
|
@ -680,22 +680,22 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
|
|
||||||
binVersion, err := git.BinVersion()
|
binVersion, err := git.BinVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error retrieving git version: %s", err)
|
log.Fatal(4, "Error retrieving git version: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
splitVersion := strings.SplitN(binVersion, ".", 3)
|
splitVersion := strings.SplitN(binVersion, ".", 3)
|
||||||
|
|
||||||
majorVersion, err := strconv.ParseUint(splitVersion[0], 10, 64)
|
majorVersion, err := strconv.ParseUint(splitVersion[0], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error parsing git major version: %s", err)
|
log.Fatal(4, "Error parsing git major version: %v", err)
|
||||||
}
|
}
|
||||||
minorVersion, err := strconv.ParseUint(splitVersion[1], 10, 64)
|
minorVersion, err := strconv.ParseUint(splitVersion[1], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error parsing git minor version: %s", err)
|
log.Fatal(4, "Error parsing git minor version: %v", err)
|
||||||
}
|
}
|
||||||
revisionVersion, err := strconv.ParseUint(splitVersion[2], 10, 64)
|
revisionVersion, err := strconv.ParseUint(splitVersion[2], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Error parsing git revision version: %s", err)
|
log.Fatal(4, "Error parsing git revision version: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !((majorVersion > 2) || (majorVersion == 2 && minorVersion > 1) ||
|
if !((majorVersion > 2) || (majorVersion == 2 && minorVersion > 1) ||
|
||||||
|
@ -771,11 +771,11 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
}
|
}
|
||||||
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash")
|
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash")
|
||||||
if err = Cfg.Section("repository").MapTo(&Repository); err != nil {
|
if err = Cfg.Section("repository").MapTo(&Repository); err != nil {
|
||||||
log.Fatal(4, "Fail to map Repository settings: %v", err)
|
log.Fatal(4, "Failed to map Repository settings: %v", err)
|
||||||
} else if err = Cfg.Section("repository.editor").MapTo(&Repository.Editor); err != nil {
|
} else if err = Cfg.Section("repository.editor").MapTo(&Repository.Editor); err != nil {
|
||||||
log.Fatal(4, "Fail to map Repository.Editor settings: %v", err)
|
log.Fatal(4, "Failed to map Repository.Editor settings: %v", err)
|
||||||
} else if err = Cfg.Section("repository.upload").MapTo(&Repository.Upload); err != nil {
|
} else if err = Cfg.Section("repository.upload").MapTo(&Repository.Upload); err != nil {
|
||||||
log.Fatal(4, "Fail to map Repository.Upload settings: %v", err)
|
log.Fatal(4, "Failed to map Repository.Upload settings: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !filepath.IsAbs(Repository.Upload.TempPath) {
|
if !filepath.IsAbs(Repository.Upload.TempPath) {
|
||||||
|
@ -823,17 +823,17 @@ please consider changing to GITEA_CUSTOM`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = Cfg.Section("ui").MapTo(&UI); err != nil {
|
if err = Cfg.Section("ui").MapTo(&UI); err != nil {
|
||||||
log.Fatal(4, "Fail to map UI settings: %v", err)
|
log.Fatal(4, "Failed to map UI settings: %v", err)
|
||||||
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
|
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
|
||||||
log.Fatal(4, "Fail to map Markdown settings: %v", err)
|
log.Fatal(4, "Failed to map Markdown settings: %v", err)
|
||||||
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
|
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
|
||||||
log.Fatal(4, "Fail to map Cron settings: %v", err)
|
log.Fatal(4, "Failed to map Cron settings: %v", err)
|
||||||
} else if err = Cfg.Section("git").MapTo(&Git); err != nil {
|
} else if err = Cfg.Section("git").MapTo(&Git); err != nil {
|
||||||
log.Fatal(4, "Fail to map Git settings: %v", err)
|
log.Fatal(4, "Failed to map Git settings: %v", err)
|
||||||
} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil {
|
} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil {
|
||||||
log.Fatal(4, "Fail to map Mirror settings: %v", err)
|
log.Fatal(4, "Failed to map Mirror settings: %v", err)
|
||||||
} else if err = Cfg.Section("api").MapTo(&API); err != nil {
|
} else if err = Cfg.Section("api").MapTo(&API); err != nil {
|
||||||
log.Fatal(4, "Fail to map API settings: %v", err)
|
log.Fatal(4, "Failed to map API settings: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if Mirror.DefaultInterval <= 0 {
|
if Mirror.DefaultInterval <= 0 {
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
package ssh
|
package ssh
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
|
@ -117,7 +116,7 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) {
|
||||||
func listen(config *ssh.ServerConfig, host string, port int) {
|
func listen(config *ssh.ServerConfig, host string, port int) {
|
||||||
listener, err := net.Listen("tcp", host+":"+com.ToStr(port))
|
listener, err := net.Listen("tcp", host+":"+com.ToStr(port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Fail to start SSH server: %v", err)
|
log.Fatal(4, "Failed to start SSH server: %v", err)
|
||||||
}
|
}
|
||||||
for {
|
for {
|
||||||
// Once a ServerConfig has been configured, connections can be accepted.
|
// Once a ServerConfig has been configured, connections can be accepted.
|
||||||
|
@ -169,23 +168,23 @@ func Listen(host string, port int) {
|
||||||
filePath := filepath.Dir(keyPath)
|
filePath := filepath.Dir(keyPath)
|
||||||
|
|
||||||
if err := os.MkdirAll(filePath, os.ModePerm); err != nil {
|
if err := os.MkdirAll(filePath, os.ModePerm); err != nil {
|
||||||
log.Error(4, "Fail to create dir %s: %v", filePath, err)
|
log.Error(4, "Failed to create dir %s: %v", filePath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, stderr, err := com.ExecCmd("ssh-keygen", "-f", keyPath, "-t", "rsa", "-N", "")
|
_, stderr, err := com.ExecCmd("ssh-keygen", "-f", keyPath, "-t", "rsa", "-N", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("Fail to generate private key: %v - %s", err, stderr))
|
log.Fatal(4, "Failed to generate private key: %v - %s", err, stderr)
|
||||||
}
|
}
|
||||||
log.Trace("SSH: New private key is generateed: %s", keyPath)
|
log.Trace("SSH: New private key is generateed: %s", keyPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
privateBytes, err := ioutil.ReadFile(keyPath)
|
privateBytes, err := ioutil.ReadFile(keyPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("SSH: Fail to load private key")
|
log.Fatal(4, "SSH: Failed to load private key")
|
||||||
}
|
}
|
||||||
private, err := ssh.ParsePrivateKey(privateBytes)
|
private, err := ssh.ParsePrivateKey(privateBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("SSH: Fail to parse private key")
|
log.Fatal(4, "SSH: Failed to parse private key")
|
||||||
}
|
}
|
||||||
config.AddHostKey(private)
|
config.AddHostKey(private)
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ func GlobalInit() {
|
||||||
highlight.NewContext()
|
highlight.NewContext()
|
||||||
markdown.BuildSanitizer()
|
markdown.BuildSanitizer()
|
||||||
if err := models.NewEngine(); err != nil {
|
if err := models.NewEngine(); err != nil {
|
||||||
log.Fatal(4, "Fail to initialize ORM engine: %v", err)
|
log.Fatal(4, "Failed to initialize ORM engine: %v", err)
|
||||||
}
|
}
|
||||||
models.HasEngine = true
|
models.HasEngine = true
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,7 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
|
||||||
if com.IsFile(setting.CustomConf) {
|
if com.IsFile(setting.CustomConf) {
|
||||||
// Keeps custom settings if there is already something.
|
// Keeps custom settings if there is already something.
|
||||||
if err = cfg.Append(setting.CustomConf); err != nil {
|
if err = cfg.Append(setting.CustomConf); err != nil {
|
||||||
log.Error(4, "Fail to load custom conf '%s': %v", setting.CustomConf, err)
|
log.Error(4, "Failed to load custom conf '%s': %v", setting.CustomConf, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cfg.Section("database").Key("DB_TYPE").SetValue(models.DbCfg.Type)
|
cfg.Section("database").Key("DB_TYPE").SetValue(models.DbCfg.Type)
|
||||||
|
|
|
@ -6,10 +6,12 @@ package repo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
gotemplate "html/template"
|
gotemplate "html/template"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"path"
|
"path"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"code.gitea.io/git"
|
"code.gitea.io/git"
|
||||||
|
@ -22,9 +24,7 @@ import (
|
||||||
"code.gitea.io/gitea/modules/markdown"
|
"code.gitea.io/gitea/modules/markdown"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/templates"
|
"code.gitea.io/gitea/modules/templates"
|
||||||
"encoding/base64"
|
|
||||||
"github.com/Unknwon/paginater"
|
"github.com/Unknwon/paginater"
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -193,7 +193,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
|
||||||
var fileContent string
|
var fileContent string
|
||||||
if content, err := templates.ToUTF8WithErr(buf); err != nil {
|
if content, err := templates.ToUTF8WithErr(buf); err != nil {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(4, "ToUTF8WithErr: %s", err)
|
log.Error(4, "ToUTF8WithErr: %v", err)
|
||||||
}
|
}
|
||||||
fileContent = string(buf)
|
fileContent = string(buf)
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue