diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2021-10-15 19:35:11 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2021-10-15 19:35:11 +0300 |
| commit | d53690edff5bca081ccc6ceb675c05c24692dafc (patch) | |
| tree | 1a095a6d75d77a90fa0aa1c0c38b2e5000ff1475 | |
| parent | c2d5e17f2995e7d7ab7c4b45943d4c71b024e4ca (diff) | |
tunneld: add block context for config
| -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 } |
