Commit d7698ecf authored by Pedro Nasser's avatar Pedro Nasser

fix: import should always be relative to current file directory

parent ffafb2ec
......@@ -218,8 +218,13 @@ func (p *parser) doImport() error {
}
var matches []string
relImportPattern := filepath.Join(filepath.Dir(absFile), importPattern)
matches, err = filepath.Glob(relImportPattern)
var globPattern string
if !filepath.IsAbs(importPattern) {
globPattern = filepath.Join(filepath.Dir(absFile), importPattern)
} else {
globPattern = importPattern
}
matches, err = filepath.Glob(globPattern)
if err != nil {
return p.Errf("Failed to use import pattern %s: %v", importPattern, err)
......@@ -239,6 +244,27 @@ func (p *parser) doImport() error {
if err != nil {
return err
}
var importLine int
importDir := filepath.Dir(importFile)
for i, token := range newTokens {
if token.Text == "import" {
importLine = token.Line
continue
}
if token.Line == importLine {
var abs string
if !filepath.IsAbs(importFile) {
abs = filepath.Join(filepath.Dir(absFile), token.Text)
} else {
abs = filepath.Join(importDir, token.Text)
}
newTokens[i] = Token{
Text: abs,
Line: token.Line,
File: token.File,
}
}
}
importedTokens = append(importedTokens, newTokens...)
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment