1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:37:35 +00:00

LibCore: Add File method to determine absolute path

This will generate absolute paths lexically rather than through a call
to realpath. The motivation for this is to generate absolute paths for
non-existent files in unveil calls, as realpath will not work if the
file does not exist.
This commit is contained in:
Timothy 2021-07-10 01:35:30 +10:00 committed by Ali Mohammad Pur
parent 3ae64c7c3d
commit 068802d58d
2 changed files with 15 additions and 0 deletions

View file

@ -207,6 +207,20 @@ String File::current_working_directory()
return cwd_as_string;
}
String File::absolute_path(String const& path)
{
if (File::exists(path))
return File::real_path_for(path);
if (path.starts_with("/"sv))
return LexicalPath::canonicalized_path(path);
auto working_directory = File::current_working_directory();
auto full_path = LexicalPath::join(working_directory, path);
return LexicalPath::canonicalized_path(full_path.string());
}
#ifdef __serenity__
String File::read_link(String const& link_path)