diff options
Diffstat (limited to 'cmd/tunneld')
| -rw-r--r-- | cmd/tunneld/main.go | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/cmd/tunneld/main.go b/cmd/tunneld/main.go index f773b86..86402ca 100644 --- a/cmd/tunneld/main.go +++ b/cmd/tunneld/main.go @@ -159,24 +159,35 @@ func (p *parser) read(fp *os.File) error { var args []string var line int + var block bool + for n := 1; scanner.Scan(); n++ { if line == 0 { line = n } parts := strings.SplitN(scanner.Text(), "#", 2) - s := parts[0] + s := strings.TrimSpace(parts[0]) - readahead := false + if strings.HasSuffix(s, " --") { + if block { + return fmt.Errorf("%s:%d: duplicate block", fp.Name(), n) + } + s = s[:len(s)-3] + block = true + } - if len(parts) == 1 && strings.HasSuffix(s, "\\") { - s = s[:len(s)-1] - readahead = true + if s == "--" { + if !block { + return fmt.Errorf("%s:%d: no block context", fp.Name(), n) + } + block = false + s = "" } args = append(args, strings.Fields(s)...) - if readahead { + if block { continue } |
