From bbdc9fa8b5254ec97070f44f65e61357b3fba979 Mon Sep 17 00:00:00 2001 From: Travis DePrato Date: Mon, 8 Mar 2021 17:15:48 -0800 Subject: [PATCH] Add support for CodexASTParseFailedErr --- cmd/codex/upload.go | 6 +++++- internal/api/upload_codex.go | 15 ++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cmd/codex/upload.go b/cmd/codex/upload.go index 9f4a39c..f3ac5a8 100644 --- a/cmd/codex/upload.go +++ b/cmd/codex/upload.go @@ -59,7 +59,11 @@ var codexUploadCmd = &cobra.Command{ if parseErr != nil { _, _ = fmt.Fprintf(os.Stderr, "Failed to parse codex (%d issues):\n", len(parseErr.Errors)) for _, e := range parseErr.Errors { - _, _ = fmt.Fprintf(os.Stderr, " - %s\n (%s at %s)\n", red(e.Message), faint(e.Error), cyan(e.SourcePosition)) + _, _ = fmt.Fprintf(os.Stderr, " - %s\n (%s", red(e.Message), faint(e.Error)) + if e.SourcePosition != "" { + _, _ = fmt.Fprintf(os.Stderr, " at %s", cyan(e.SourcePosition)) + } + _, _ = fmt.Fprintf(os.Stderr, ")\n") } os.Exit(1) } diff --git a/internal/api/upload_codex.go b/internal/api/upload_codex.go index dfdeb26..a1a6741 100644 --- a/internal/api/upload_codex.go +++ b/internal/api/upload_codex.go @@ -60,14 +60,15 @@ func (c *Client) UploadCodex(r *UploadCodexRequest) (*UploadCodexResponse, *Code return nil, nil, err } if statusError != nil { - if statusError.error.Error != "MySTParseFailedErr" { - return nil, nil, errors.Errorf("unknown error returned from API: %s", statusError.error.Error) + e := statusError.error.Error + if e == "MySTParseFailedErr" || e == "CodexASTParseFailedErr" { + var parseError CodexParseFailedError + if err := json.Unmarshal(statusError.error.Details, &parseError); err != nil { + return nil, nil, errors.Wrap(err, "failed to unmarshal codex parse error details") + } + return nil, &parseError, nil } - var parseError CodexParseFailedError - if err := json.Unmarshal(statusError.error.Details, &parseError); err != nil { - return nil, nil, errors.Wrap(err, "failed to unmarshal codex parse error details") - } - return nil, &parseError, nil + return nil, nil, errors.Errorf("unknown error returned from API: %s", statusError.error.Error) } resp := &UploadCodexResponse{} err = res.UnmarshalJson(resp)