1
0

fix: lint

This commit is contained in:
kolaente 2024-02-13 22:24:46 +01:00
parent 205f330f8a
commit 162741e940
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B

View File

@ -20,23 +20,24 @@ import (
"archive/zip" "archive/zip"
"bufio" "bufio"
"bytes" "bytes"
vversion "code.vikunja.io/api/pkg/version"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"github.com/hashicorp/go-version"
"io" "io"
"os" "os"
"sort" "sort"
"strconv" "strconv"
"strings" "strings"
"github.com/hashicorp/go-version"
"code.vikunja.io/api/pkg/db" "code.vikunja.io/api/pkg/db"
"code.vikunja.io/api/pkg/files" "code.vikunja.io/api/pkg/files"
"code.vikunja.io/api/pkg/initialize" "code.vikunja.io/api/pkg/initialize"
"code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/migration" "code.vikunja.io/api/pkg/migration"
vversion "code.vikunja.io/api/pkg/version"
"src.techknowlogick.com/xormigrate" "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 // Check if we're restoring to the same version as the dump
if versionFile == nil { err = checkVikunjaVersion(versionFile)
return fmt.Errorf("dump does not contain VERSION file, refusing to continue")
}
vf, err := versionFile.Open()
if err != nil { if err != nil {
return fmt.Errorf("could not open version file: %w", err) return 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)
}
} }
/////// ///////
@ -318,3 +293,38 @@ func restoreConfig(configFile, dotEnvFile *zip.File) error {
return nil 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
}