returnnil,fmt.Errorf("invalid template, missing header line. Expected format is one line of space separated headers, one line of space separated column specs.")
}
headers:=splitOnWhitespace(scanner.Text())
if!scanner.Scan(){
returnnil,fmt.Errorf("invalid template, missing spec line. Expected format is one line of space separated headers, one line of space separated column specs.")
}
specs:=splitOnWhitespace(scanner.Text())
iflen(headers)!=len(specs){
returnnil,fmt.Errorf("number of headers (%d) and field specifications (%d) don't match",len(headers),len(specs))
}
columns:=make([]Column,len(headers))
forix:=rangeheaders{
spec,err:=massageJSONPath(specs[ix])
iferr!=nil{
returnnil,err
}
columns[ix]=Column{
Header:headers[ix],
FieldSpec:spec,
}
}
return&CustomColumnsPrinter{Columns:columns},nil
}
// Column represents a user specified column
typeColumnstruct{
// The header to print above the column, general style is ALL_CAPS