From 576b8b6370f67be2d8bcdcf89fdb2ac6d0d089c3 Mon Sep 17 00:00:00 2001 From: Abin Simon Date: Thu, 16 Nov 2023 11:58:28 +0530 Subject: [PATCH] Debug CLI for msg to eml conversion (#4643) --- #### Does this PR need a docs update or release note? - [ ] :white_check_mark: Yes, it's included - [ ] :clock1: Yes, but in a later PR - [x] :no_entry: No #### Type of change - [ ] :sunflower: Feature - [ ] :bug: Bugfix - [ ] :world_map: Documentation - [x] :robot: Supportability/Tests - [ ] :computer: CI/Deployment - [ ] :broom: Tech Debt/Cleanup #### Issue(s) * https://github.com/alcionai/corso/issues/3893 #### Test Plan - [ ] :muscle: Manual - [ ] :zap: Unit test - [ ] :green_heart: E2E --- src/cmd/converter/converter.go | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/cmd/converter/converter.go diff --git a/src/cmd/converter/converter.go b/src/cmd/converter/converter.go new file mode 100644 index 000000000..32c028d63 --- /dev/null +++ b/src/cmd/converter/converter.go @@ -0,0 +1,51 @@ +package main + +import ( + "context" + "fmt" + "log" + "os" + + "github.com/alcionai/corso/src/internal/converters/eml" + "github.com/alcionai/corso/src/pkg/services/m365/api" +) + +func main() { + if len(os.Args) == 1 { + fmt.Println("Usage: converter ") + os.Exit(1) + } + + from := os.Args[1] + to := os.Args[2] + filename := os.Args[3] + + body, err := os.ReadFile(filename) + if err != nil { + log.Fatal(err) + } + + var out string + + switch from { + case "msg": + switch to { + case "eml": + msg, err := api.BytesToMessageable(body) + if err != nil { + log.Fatal(err) + } + + out, err = eml.ToEml(context.Background(), msg) + if err != nil { + log.Fatal(err) + } + default: + log.Fatal("Unknown target format", to) + } + default: + log.Fatal("Unknown source format", from) + } + + fmt.Print(out) +}