|
@@ -12,6 +12,7 @@ import (
|
|
|
|
|
|
"github.com/gogo/protobuf/proto"
|
|
"github.com/gogo/protobuf/proto"
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/cobra"
|
|
|
|
+ progress "gopkg.in/cheggaaa/pb.v1"
|
|
"gopkg.in/src-d/hercules.v7"
|
|
"gopkg.in/src-d/hercules.v7"
|
|
"gopkg.in/src-d/hercules.v7/internal/pb"
|
|
"gopkg.in/src-d/hercules.v7/internal/pb"
|
|
)
|
|
)
|
|
@@ -32,17 +33,28 @@ var combineCmd = &cobra.Command{
|
|
io.Copy(os.Stdout, bufio.NewReader(file))
|
|
io.Copy(os.Stdout, bufio.NewReader(file))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- repos := []string{}
|
|
|
|
|
|
+ var repos []string
|
|
allErrors := map[string][]string{}
|
|
allErrors := map[string][]string{}
|
|
mergedResults := map[string]interface{}{}
|
|
mergedResults := map[string]interface{}{}
|
|
mergedMetadata := &hercules.CommonAnalysisResult{}
|
|
mergedMetadata := &hercules.CommonAnalysisResult{}
|
|
- for _, fileName := range files {
|
|
|
|
|
|
+ var fileName string
|
|
|
|
+ bar := progress.New(len(files))
|
|
|
|
+ bar.Callback = func(msg string) {
|
|
|
|
+ os.Stderr.WriteString("\033[2K\r" + msg + " " + fileName)
|
|
|
|
+ }
|
|
|
|
+ bar.NotPrint = true
|
|
|
|
+ bar.ShowPercent = false
|
|
|
|
+ bar.ShowSpeed = false
|
|
|
|
+ bar.SetMaxWidth(80).Start()
|
|
|
|
+ for _, fileName = range files {
|
|
|
|
+ bar.Increment()
|
|
anotherResults, anotherMetadata, errs := loadMessage(fileName, &repos)
|
|
anotherResults, anotherMetadata, errs := loadMessage(fileName, &repos)
|
|
if anotherMetadata != nil {
|
|
if anotherMetadata != nil {
|
|
mergeResults(mergedResults, mergedMetadata, anotherResults, anotherMetadata)
|
|
mergeResults(mergedResults, mergedMetadata, anotherResults, anotherMetadata)
|
|
}
|
|
}
|
|
allErrors[fileName] = errs
|
|
allErrors[fileName] = errs
|
|
}
|
|
}
|
|
|
|
+ bar.Finish()
|
|
printErrors(allErrors)
|
|
printErrors(allErrors)
|
|
sort.Strings(repos)
|
|
sort.Strings(repos)
|
|
if mergedMetadata == nil {
|
|
if mergedMetadata == nil {
|
|
@@ -59,8 +71,11 @@ var combineCmd = &cobra.Command{
|
|
mergedMetadata.FillMetadata(mergedMessage.Header)
|
|
mergedMetadata.FillMetadata(mergedMessage.Header)
|
|
for key, val := range mergedResults {
|
|
for key, val := range mergedResults {
|
|
buffer := bytes.Buffer{}
|
|
buffer := bytes.Buffer{}
|
|
- hercules.Registry.Summon(key)[0].(hercules.LeafPipelineItem).Serialize(
|
|
|
|
|
|
+ err := hercules.Registry.Summon(key)[0].(hercules.LeafPipelineItem).Serialize(
|
|
val, true, &buffer)
|
|
val, true, &buffer)
|
|
|
|
+ if err != nil {
|
|
|
|
+ panic(err)
|
|
|
|
+ }
|
|
mergedMessage.Contents[key] = buffer.Bytes()
|
|
mergedMessage.Contents[key] = buffer.Bytes()
|
|
}
|
|
}
|
|
serialized, err := proto.Marshal(&mergedMessage)
|
|
serialized, err := proto.Marshal(&mergedMessage)
|