func coreDownloadCmd(cmd *cobra.Command, args []string) { if len(args) < 1 { nmUsage(cmd, errors.New("Need to specify target filename to download")) return } runner, err := getTargetCmdRunner() if err != nil { nmUsage(cmd, err) } defer runner.Conn.Close() tmpName := args[0] + ".tmp" file, err := os.OpenFile(tmpName, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0660) if err != nil { nmUsage(cmd, util.NewNewtError(fmt.Sprintf( "Cannot open file %s - %s", tmpName, err.Error()))) } coreDownload, err := protocol.NewCoreDownload() if err != nil { nmUsage(cmd, err) } coreDownload.Runner = runner coreDownload.File = file err = coreDownload.Download(coreOffset, coreNumBytes) file.Close() if err != nil { fmt.Println(err) return } fmt.Println("Coredump download completed") if !coreElfify { os.Rename(tmpName, args[0]) return } /* * Download finished. Now convert to ELF corefile format. */ coreConvert, err := core.ConvertFilenames(tmpName, args[0]) if err != nil { nmUsage(cmd, err) return } if err != nil { fmt.Println(err) return } os.Remove(tmpName) fmt.Printf("Corefile created for\n %x\n", coreConvert.ImageHash) }
func coreConvertCmd(cmd *cobra.Command, args []string) { if len(args) < 2 { nmUsage(cmd, nil) return } coreConvert, err := core.ConvertFilenames(args[0], args[1]) if err != nil { nmUsage(cmd, err) return } fmt.Printf("Corefile created for\n %x\n", coreConvert.ImageHash) }