feat: support escaped paths (#107)

This commit is contained in:
Manfred Touron 2018-09-13 17:28:14 +02:00
parent 5ab09755c8
commit 48265e1947
No known key found for this signature in database
GPG Key ID: 6D4DED2EAB123456
3 changed files with 10 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package main
import ( import (
"bytes" "bytes"
"log" "log"
"net/url"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@ -94,6 +95,7 @@ func (e *GenericTemplateBasedEncoder) templates() ([]string, error) {
if e.debug { if e.debug {
log.Printf("new template: %q", rel) log.Printf("new template: %q", rel)
} }
filenames = append(filenames, rel) filenames = append(filenames, rel)
return nil return nil
}) })
@ -135,6 +137,14 @@ func (e *GenericTemplateBasedEncoder) genAst(templateFilename string) (*Ast, err
Enum: e.enum, Enum: e.enum,
} }
buffer := new(bytes.Buffer) buffer := new(bytes.Buffer)
unescaped, err := url.QueryUnescape(templateFilename)
if err != nil {
log.Printf("failed to unescape filepath %q: %v", templateFilename, err)
} else {
templateFilename = unescaped
}
tmpl, err := template.New("").Funcs(pgghelpers.ProtoHelpersFuncMap).Parse(templateFilename) tmpl, err := template.New("").Funcs(pgghelpers.ProtoHelpersFuncMap).Parse(templateFilename)
if err != nil { if err != nil {
return nil, err return nil, err