(base, full string)
| 359 | } |
| 360 | |
| 361 | func relativeTo(base, full string) (string, error) { |
| 362 | baseLower := strings.ToLower(base) |
| 363 | fullLower := strings.ToLower(full) |
| 364 | if fullLower != baseLower && !strings.HasPrefix(fullLower, baseLower+"/") { |
| 365 | return "", fmt.Errorf("path %q is not under %q", full, base) |
| 366 | } |
| 367 | rel := full[len(base):] |
| 368 | rel = strings.TrimPrefix(rel, "/") |
| 369 | return rel, nil |
| 370 | } |
| 371 | |
| 372 | func downloadFile(dbx filesClient, src string, dst string) error { |
| 373 | _, err := downloadFileWithMetadata(dbx, src, dst, os.Stderr) |
no outgoing calls