From d53690edff5bca081ccc6ceb675c05c24692dafc Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Fri, 15 Oct 2021 19:35:11 +0300 Subject: tunneld: add block context for config --- cmd/tunneld/main.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'cmd') 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 } -- cgit v1.2.3-70-g09d2