aboutsummaryrefslogtreecommitdiff
path: root/internal/cmd/backup.go
diff options
context:
space:
mode:
authorᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-02-22 09:05:26 +0800
committerGitHub <noreply@github.com>2020-02-22 09:05:26 +0800
commit648d9e253c1924b832248f26fee42b2fb64dc3bc (patch)
tree51649fad974cd7284a47d30e412c90e7ab72cd2c /internal/cmd/backup.go
parent5b14cc6f0b7b661beb2640a94bd15660cdb48587 (diff)
conf: overhaul server settings (#5928)
* conf: rename package * Requires Go 1.12 * Fix lint * Fix lint * Overhaul * db: fix tests * Save my work * Fix tests * Server.UnixSocketPermission * Server.LocalRootURL * SSH settings * Server.OfflineMode * Save my work * App.Version * Remove [server] STATIC_ROOT_PATH * Server.LandingURL
Diffstat (limited to 'internal/cmd/backup.go')
-rw-r--r--internal/cmd/backup.go28
1 files changed, 16 insertions, 12 deletions
diff --git a/internal/cmd/backup.go b/internal/cmd/backup.go
index 6e9b24b0..28411b0e 100644
--- a/internal/cmd/backup.go
+++ b/internal/cmd/backup.go
@@ -9,16 +9,18 @@ import (
"io/ioutil"
"os"
"path"
+ "path/filepath"
"time"
+ "github.com/pkg/errors"
"github.com/unknwon/cae/zip"
"github.com/unknwon/com"
"github.com/urfave/cli"
"gopkg.in/ini.v1"
log "unknwon.dev/clog/v2"
+ "gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/setting"
)
var Backup = cli.Command{
@@ -44,10 +46,12 @@ const _ARCHIVE_ROOT_DIR = "gogs-backup"
func runBackup(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
- if c.IsSet("config") {
- setting.CustomConf = c.String("config")
+
+ err := conf.Init(c.String("config"))
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
}
- setting.Init()
+
db.LoadConfigs()
db.SetEngine()
@@ -66,12 +70,12 @@ func runBackup(c *cli.Context) error {
metadata := ini.Empty()
metadata.Section("").Key("VERSION").SetValue(com.ToStr(_CURRENT_BACKUP_FORMAT_VERSION))
metadata.Section("").Key("DATE_TIME").SetValue(time.Now().String())
- metadata.Section("").Key("GOGS_VERSION").SetValue(setting.AppVersion)
+ metadata.Section("").Key("GOGS_VERSION").SetValue(conf.App.Version)
if err = metadata.SaveTo(metaFile); err != nil {
log.Fatal("Failed to save metadata '%s': %v", metaFile, err)
}
- archiveName := path.Join(c.String("target"), c.String("archive-name"))
+ archiveName := filepath.Join(c.String("target"), c.String("archive-name"))
log.Info("Packing backup files to: %s", archiveName)
z, err := zip.Create(archiveName)
@@ -83,7 +87,7 @@ func runBackup(c *cli.Context) error {
}
// Database
- dbDir := path.Join(rootDir, "db")
+ dbDir := filepath.Join(rootDir, "db")
if err = db.DumpDatabase(dbDir); err != nil {
log.Fatal("Failed to dump database: %v", err)
}
@@ -93,7 +97,7 @@ func runBackup(c *cli.Context) error {
// Custom files
if !c.Bool("database-only") {
- if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/custom", setting.CustomPath); err != nil {
+ if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/custom", conf.CustomDir()); err != nil {
log.Fatal("Failed to include 'custom': %v", err)
}
}
@@ -101,7 +105,7 @@ func runBackup(c *cli.Context) error {
// Data files
if !c.Bool("database-only") {
for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
- dirPath := path.Join(setting.AppDataPath, dir)
+ dirPath := filepath.Join(conf.Server.AppDataPath, dir)
if !com.IsDir(dirPath) {
continue
}
@@ -114,9 +118,9 @@ func runBackup(c *cli.Context) error {
// Repositories
if !c.Bool("exclude-repos") && !c.Bool("database-only") {
- reposDump := path.Join(rootDir, "repositories.zip")
- log.Info("Dumping repositories in '%s'", setting.RepoRootPath)
- if err = zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
+ reposDump := filepath.Join(rootDir, "repositories.zip")
+ log.Info("Dumping repositories in '%s'", conf.RepoRootPath)
+ if err = zip.PackTo(conf.RepoRootPath, reposDump, true); err != nil {
log.Fatal("Failed to dump repositories: %v", err)
}
log.Info("Repositories dumped to: %s", reposDump)