From 555ea8edfb2c30d149b3ca6cb0fbe53f2798c7bc Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 9 Sep 2021 16:15:25 +0200 Subject: Import export (#194) * start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * update bun library -> v1.0.4 Signed-off-by: kim (grufwub) * update oauth library -> v4.3.1-SSB Signed-off-by: kim (grufwub) * handle oauth token scope, fix user.SigninCount + token.UserID Signed-off-by: kim (grufwub) * update oauth library --> v4.3.2-SSB Signed-off-by: kim (grufwub) * update sqlite library -> v1.13.0 Signed-off-by: kim (grufwub) * review changes * start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * review changes Co-authored-by: kim (grufwub) Co-authored-by: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> --- vendor/github.com/mitchellh/mapstructure/error.go | 50 +++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 vendor/github.com/mitchellh/mapstructure/error.go (limited to 'vendor/github.com/mitchellh/mapstructure/error.go') diff --git a/vendor/github.com/mitchellh/mapstructure/error.go b/vendor/github.com/mitchellh/mapstructure/error.go new file mode 100644 index 000000000..47a99e5af --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/error.go @@ -0,0 +1,50 @@ +package mapstructure + +import ( + "errors" + "fmt" + "sort" + "strings" +) + +// Error implements the error interface and can represents multiple +// errors that occur in the course of a single decode. +type Error struct { + Errors []string +} + +func (e *Error) Error() string { + points := make([]string, len(e.Errors)) + for i, err := range e.Errors { + points[i] = fmt.Sprintf("* %s", err) + } + + sort.Strings(points) + return fmt.Sprintf( + "%d error(s) decoding:\n\n%s", + len(e.Errors), strings.Join(points, "\n")) +} + +// WrappedErrors implements the errwrap.Wrapper interface to make this +// return value more useful with the errwrap and go-multierror libraries. +func (e *Error) WrappedErrors() []error { + if e == nil { + return nil + } + + result := make([]error, len(e.Errors)) + for i, e := range e.Errors { + result[i] = errors.New(e) + } + + return result +} + +func appendErrors(errors []string, err error) []string { + switch e := err.(type) { + case *Error: + return append(errors, e.Errors...) + default: + return append(errors, e.Error()) + } +} -- cgit v1.2.3