Skip to main content

lib/
fn_path_utils.rs

1// src/lib/fn_path_utils.rs
2use std::path::Path;
3
4/// Standaryzuje ścieżkę: zamienia ukośniki na uniksowe i usuwa windowsowy prefiks rozszerzony.
5pub fn standardize_path(path: &Path) -> String {
6    path.to_string_lossy()
7        .replace('\\', "/")
8        .trim_start_matches("//?/")
9        .to_string()
10}
11
12/// Formatuje ścieżkę względem podanego katalogu bazowego (np. obecnego katalogu roboczego).
13/// Jeśli ścieżka zawiera się w bazowej, zwraca ładny format `./relatywna/sciezka`.
14pub fn to_display_path(path: &Path, base_dir: &Path) -> String {
15    match path.strip_prefix(base_dir) {
16        Ok(rel_path) => format!("./{}", standardize_path(rel_path)),
17        Err(_) => standardize_path(path),
18    }
19}