技术文章 T4 CodyZhang ‘s tips’ : 尝试使用 golang 格式化 Coverity report

codyzhang · 发布于 2019年8月20日 · 41 次阅读
96

时间:2017/10

起因: 通过coverity提供的API得到了一个html格式的report,但是使用Jelly script发邮件时发现不是很好解析,所以希望先简单提取有用数据,并按照jelly需要的形式格式化好。

package main

import (
    "flag"
    "fmt"
    "github.com/PuerkitoBio/goquery"
    "io/ioutil"
    "strings"
)

func main() {
    flag.Parse()
    filePath := flag.Arg(0)
    fileInfos, _ := ioutil.ReadFile(filePath)
    stringReader := strings.NewReader(string(fileInfos))
    doc, err := goquery.NewDocumentFromReader(stringReader)
    if err != nil {
        fmt.Print("url scarapping failed")
    }
    doc.Find("table > tbody > tr ").Each(func(_ int, tr *goquery.Selection) {
        fmt.Print("[JELLY_Cov] ")
        tr.Find("td ").Each(func(i int, td *goquery.Selection) {
            s := td.Find("a")
            url, _ := s.Attr("href")
            if url != "" {
                fmt.Printf("[%s] ", url)
            }
            if i < 7 {
                fmt.Printf("[%s] ", td.Text())
            }
        })
        fmt.Print("\n")
    })
}

用法

go run coverity_report_parse.go  moduleName_x86_64_cloud.html 
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册