mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 02:27:19 -04:00 
			
		
		
		
	import should get absolute path before glob (#929)
* import should get absolute path before glob * fix test: import should get absolute path before glob * try to fix test on windows * use complete path as the dispenser filename * fix caddyfile test
This commit is contained in:
		
							parent
							
								
									3fd3feeffe
								
							
						
					
					
						commit
						2125ae5f99
					
				
							
								
								
									
										3
									
								
								caddy.go
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								caddy.go
									
									
									
									
									
								
							| @ -22,7 +22,6 @@ import ( | ||||
| 	"net" | ||||
| 	"os" | ||||
| 	"os/exec" | ||||
| 	"path" | ||||
| 	"runtime" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| @ -399,7 +398,7 @@ func startWithListenerFds(cdyfile Input, inst *Instance, restartFds map[string]r | ||||
| 
 | ||||
| 	inst.caddyfileInput = cdyfile | ||||
| 
 | ||||
| 	sblocks, err := loadServerBlocks(stypeName, path.Base(cdyfile.Path()), bytes.NewReader(cdyfile.Body())) | ||||
| 	sblocks, err := loadServerBlocks(stypeName, cdyfile.Path(), bytes.NewReader(cdyfile.Body())) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| @ -212,14 +212,15 @@ func (p *parser) doImport() error { | ||||
| 
 | ||||
| 	// make path relative to Caddyfile rather than current working directory (issue #867) | ||||
| 	// and then use glob to get list of matching filenames | ||||
| 	var matches []string | ||||
| 	relImportPattern, err := filepath.Rel(filepath.Dir(p.Dispenser.filename), importPattern) | ||||
| 	if err == nil { | ||||
| 		matches, err = filepath.Glob(relImportPattern) | ||||
| 	} else { | ||||
| 		matches, err = filepath.Glob(importPattern) | ||||
| 	absFile, err := filepath.Abs(p.Dispenser.filename) | ||||
| 	if err != nil { | ||||
| 		return p.Errf("Failed to get absolute path of file: %s", p.Dispenser.filename) | ||||
| 	} | ||||
| 
 | ||||
| 	var matches []string | ||||
| 	relImportPattern := filepath.Join(filepath.Dir(absFile), importPattern) | ||||
| 	matches, err = filepath.Glob(relImportPattern) | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		return p.Errf("Failed to use import pattern %s: %v", importPattern, err) | ||||
| 	} | ||||
|  | ||||
| @ -187,7 +187,7 @@ func TestParseOneAndImport(t *testing.T) { | ||||
| 
 | ||||
| 		{`localhost | ||||
| 		  dir1 arg1 | ||||
| 		  import ../testdata/import_test1.txt`, false, []string{ | ||||
| 		  import testdata/import_test1.txt`, false, []string{ | ||||
| 			"localhost", | ||||
| 		}, map[string]int{ | ||||
| 			"dir1": 2, | ||||
| @ -195,16 +195,16 @@ func TestParseOneAndImport(t *testing.T) { | ||||
| 			"dir3": 1, | ||||
| 		}}, | ||||
| 
 | ||||
| 		{`import ../testdata/import_test2.txt`, false, []string{ | ||||
| 		{`import testdata/import_test2.txt`, false, []string{ | ||||
| 			"host1", | ||||
| 		}, map[string]int{ | ||||
| 			"dir1": 1, | ||||
| 			"dir2": 2, | ||||
| 		}}, | ||||
| 
 | ||||
| 		{`import ../testdata/import_test1.txt ../testdata/import_test2.txt`, true, []string{}, map[string]int{}}, | ||||
| 		{`import testdata/import_test1.txt testdata/import_test2.txt`, true, []string{}, map[string]int{}}, | ||||
| 
 | ||||
| 		{`import ../testdata/not_found.txt`, true, []string{}, map[string]int{}}, | ||||
| 		{`import testdata/not_found.txt`, true, []string{}, map[string]int{}}, | ||||
| 
 | ||||
| 		{`""`, false, []string{}, map[string]int{}}, | ||||
| 
 | ||||
| @ -394,8 +394,6 @@ func TestEnvironmentReplacement(t *testing.T) { | ||||
| 
 | ||||
| func testParser(input string) parser { | ||||
| 	buf := strings.NewReader(input) | ||||
| 	// use relative path to test that import paths are relative to | ||||
| 	// the Caddyfile rather than the current working directory (issue #867) | ||||
| 	p := parser{Dispenser: NewDispenser("../Test", buf)} | ||||
| 	p := parser{Dispenser: NewDispenser("Caddyfile", buf)} | ||||
| 	return p | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user