(abs string)
| 418 | } |
| 419 | |
| 420 | func resolvePathBestEffort(abs string) string { |
| 421 | dir := filepath.Dir(abs) |
| 422 | base := filepath.Base(abs) |
| 423 | for dir != "" && dir != "." { |
| 424 | if resolved, err := filepath.EvalSymlinks(dir); err == nil { |
| 425 | return filepath.Join(resolved, base) |
| 426 | } |
| 427 | parent := filepath.Dir(dir) |
| 428 | base = filepath.Join(filepath.Base(dir), base) |
| 429 | if parent == dir { |
| 430 | break |
| 431 | } |
| 432 | dir = parent |
| 433 | } |
| 434 | return abs |
| 435 | } |