From 162741e94064ee199cd5ff021d1ed05f7f5d5ff1 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 13 Feb 2024 22:24:46 +0100 Subject: [PATCH] fix: lint --- pkg/modules/dump/restore.go | 70 +++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/pkg/modules/dump/restore.go b/pkg/modules/dump/restore.go index c1d1c95ba9..33c36f74c0 100644 --- a/pkg/modules/dump/restore.go +++ b/pkg/modules/dump/restore.go @@ -20,23 +20,24 @@ import ( "archive/zip" "bufio" "bytes" - vversion "code.vikunja.io/api/pkg/version" "encoding/base64" "encoding/json" "errors" "fmt" - "github.com/hashicorp/go-version" "io" "os" "sort" "strconv" "strings" + "github.com/hashicorp/go-version" + "code.vikunja.io/api/pkg/db" "code.vikunja.io/api/pkg/files" "code.vikunja.io/api/pkg/initialize" "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/migration" + vversion "code.vikunja.io/api/pkg/version" "src.techknowlogick.com/xormigrate" ) @@ -93,35 +94,9 @@ func Restore(filename string) error { /////// // Check if we're restoring to the same version as the dump - if versionFile == nil { - return fmt.Errorf("dump does not contain VERSION file, refusing to continue") - } - vf, err := versionFile.Open() + err = checkVikunjaVersion(versionFile) if err != nil { - return fmt.Errorf("could not open version file: %w", err) - } - - var bufVersion bytes.Buffer - if _, err := bufVersion.ReadFrom(vf); err != nil { - return fmt.Errorf("could not read version file: %w", err) - } - - versionString := bufVersion.String() - if versionString == "dev" && vversion.Version == "dev" { - log.Debugf("Importing from dev version") - } else { - dumpedVersion, err := version.NewVersion(bufVersion.String()) - if err != nil { - return err - } - currentVersion, err := version.NewVersion(vversion.Version) - if err != nil { - return err - } - - if !dumpedVersion.Equal(currentVersion) { - return fmt.Errorf("export was created with version %s but this is %s - please make sure you are running the same Vikunja version before restoring", dumpedVersion, currentVersion) - } + return err } /////// @@ -318,3 +293,38 @@ func restoreConfig(configFile, dotEnvFile *zip.File) error { return nil } + +func checkVikunjaVersion(versionFile *zip.File) error { + if versionFile == nil { + return fmt.Errorf("dump does not contain VERSION file, refusing to continue") + } + vf, err := versionFile.Open() + if err != nil { + return fmt.Errorf("could not open version file: %w", err) + } + + var bufVersion bytes.Buffer + if _, err := bufVersion.ReadFrom(vf); err != nil { + return fmt.Errorf("could not read version file: %w", err) + } + + versionString := bufVersion.String() + if versionString == "dev" && vversion.Version == "dev" { + log.Debugf("Importing from dev version") + } else { + dumpedVersion, err := version.NewVersion(bufVersion.String()) + if err != nil { + return err + } + currentVersion, err := version.NewVersion(vversion.Version) + if err != nil { + return err + } + + if !dumpedVersion.Equal(currentVersion) { + return fmt.Errorf("export was created with version %s but this is %s - please make sure you are running the same Vikunja version before restoring", dumpedVersion, currentVersion) + } + } + + return nil +}