mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-17 12:31:06 +01:00
don't use die() anymore, butt dtd go errros
This commit is contained in:
@@ -20,17 +20,11 @@ package lib
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func die(v ...interface{}) {
|
||||
fmt.Fprintln(os.Stderr, v...)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func contains(s []int, e int) bool {
|
||||
for _, a := range s {
|
||||
if a == e {
|
||||
|
||||
@@ -31,7 +31,11 @@ func ProcessFiles(args []string) error {
|
||||
}
|
||||
|
||||
for _, fd := range fds {
|
||||
printData(parseFile(fd, pattern))
|
||||
data, err := parseFile(fd, pattern)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printData(data)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -19,6 +19,7 @@ package lib
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/alecthomas/repr"
|
||||
"io"
|
||||
@@ -43,7 +44,7 @@ type Tabdata struct {
|
||||
way we can turn "tabular data" (with fields containing whitespaces)
|
||||
into real tabular data. We re-tabulate our input if you will.
|
||||
*/
|
||||
func parseFile(input io.Reader, pattern string) Tabdata {
|
||||
func parseFile(input io.Reader, pattern string) (Tabdata, error) {
|
||||
data := Tabdata{}
|
||||
|
||||
var scanner *bufio.Scanner
|
||||
@@ -65,7 +66,7 @@ func parseFile(input io.Reader, pattern string) Tabdata {
|
||||
|
||||
patternR, err := regexp.Compile(pattern)
|
||||
if err != nil {
|
||||
die(err)
|
||||
return data, errors.Unwrap(fmt.Errorf("Regexp pattern %s is invalid: %w", pattern, err))
|
||||
}
|
||||
|
||||
if !hadFirst {
|
||||
@@ -145,20 +146,17 @@ func parseFile(input io.Reader, pattern string) Tabdata {
|
||||
|
||||
idx++
|
||||
}
|
||||
if Debug {
|
||||
fmt.Println()
|
||||
}
|
||||
data.entries = append(data.entries, values)
|
||||
}
|
||||
}
|
||||
|
||||
if scanner.Err() != nil {
|
||||
die(scanner.Err())
|
||||
return data, errors.Unwrap(fmt.Errorf("Regexp pattern %s is invalid: %w", pattern, scanner.Err()))
|
||||
}
|
||||
|
||||
if Debug {
|
||||
repr.Print(data)
|
||||
}
|
||||
|
||||
return data
|
||||
return data, nil
|
||||
}
|
||||
|
||||
@@ -70,7 +70,12 @@ asd igig cxxxncnc
|
||||
19191 EDD 1 X`
|
||||
|
||||
readFd := strings.NewReader(table)
|
||||
gotdata := parseFile(readFd, "")
|
||||
gotdata, err := parseFile(readFd, "")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Parser returned error: %s\nData processed so far: %+v", err, gotdata)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(data, gotdata) {
|
||||
t.Errorf("Parser returned invalid data\nExp: %+v\nGot: %+v\n", data, gotdata)
|
||||
}
|
||||
|
||||
@@ -54,7 +54,12 @@ asd igig cxxxncnc
|
||||
for mode, expect := range expects {
|
||||
OutputMode = mode
|
||||
fd := strings.NewReader(table)
|
||||
data := parseFile(fd, "")
|
||||
data, err := parseFile(fd, "")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Parser returned error: %s\nData processed so far: %+v", err, data)
|
||||
}
|
||||
|
||||
printData(data)
|
||||
|
||||
buf := make([]byte, 1024)
|
||||
|
||||
Reference in New Issue
Block a user