summaryrefslogtreecommitdiff
path: root/cmd/tunneld
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/tunneld')
-rw-r--r--cmd/tunneld/main.go23
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
}