// AttachFileAction attaches a file to an alert at OpsGenie. func AttachFileAction(c *gcli.Context) { cli, err := NewAlertClient(c) if err != nil { os.Exit(1) } req := alerts.AttachFileAlertRequest{} if val, success := getVal("id", c); success { req.ID = val } if val, success := getVal("alias", c); success { req.Alias = val } if val, success := getVal("attachment", c); success { f, err := os.Open(val) defer f.Close() if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } req.Attachment = f } if val, success := getVal("indexFile", c); success { req.IndexFile = val } req.User = grabUsername(c) if val, success := getVal("source", c); success { req.Source = val } if val, success := getVal("note", c); success { req.Note = val } printVerboseMessage("Attach request prepared from flags, sending request to OpsGenie..") _, err = cli.AttachFile(req) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } printVerboseMessage("File attached to alert successfully.") }