ExpandHomePath expands a leading ~ in paths using the current user's home directory.
(path string)
| 1375 | |
| 1376 | // ExpandHomePath expands a leading ~ in paths using the current user's home directory. |
| 1377 | func ExpandHomePath(path string) string { |
| 1378 | trimmed := strings.TrimSpace(path) |
| 1379 | if trimmed == "" { |
| 1380 | return trimmed |
| 1381 | } |
| 1382 | |
| 1383 | if trimmed == "~" { |
| 1384 | home, err := os.UserHomeDir() |
| 1385 | if err != nil { |
| 1386 | return trimmed |
| 1387 | } |
| 1388 | return home |
| 1389 | } |
| 1390 | |
| 1391 | if strings.HasPrefix(trimmed, "~/") || strings.HasPrefix(trimmed, "~\\") { |
| 1392 | home, err := os.UserHomeDir() |
| 1393 | if err != nil { |
| 1394 | return trimmed |
| 1395 | } |
| 1396 | rest := strings.TrimPrefix(trimmed, "~") |
| 1397 | rest = strings.TrimPrefix(rest, "/") |
| 1398 | rest = strings.TrimPrefix(rest, "\\") |
| 1399 | return filepath.Join(home, rest) |
| 1400 | } |
| 1401 | |
| 1402 | if strings.HasPrefix(trimmed, "~"+string(os.PathSeparator)) { |
| 1403 | home, err := os.UserHomeDir() |
| 1404 | if err != nil { |
| 1405 | return trimmed |
| 1406 | } |
| 1407 | rest := strings.TrimPrefix(trimmed, "~"+string(os.PathSeparator)) |
| 1408 | return filepath.Join(home, rest) |
| 1409 | } |
| 1410 | |
| 1411 | return trimmed |
| 1412 | } |
| 1413 | |
| 1414 | func parseEnvPort(name string) int { |
| 1415 | raw := strings.TrimSpace(os.Getenv(name)) |
no outgoing calls