Skip to main content

luaur_cli_lib/methods/
vfs_navigator_get_config_path.rs

1use crate::functions::has_suffix::has_suffix;
2use crate::records::vfs_navigator::VfsNavigator;
3use alloc::string::String;
4use alloc::string::ToString;
5
6const K_INIT_SUFFIXES: &[&str] = &["/init.lua", "/init.luau"];
7const K_SUFFIXES: &[&str] = &[".lua", ".luau"];
8
9impl VfsNavigator {
10    pub fn get_config_path(&self, filename: &str) -> String {
11        let mut directory = self.real_path.as_str();
12
13        for suffix in K_INIT_SUFFIXES {
14            if has_suffix(directory, suffix) {
15                directory = &directory[..directory.len() - suffix.len()];
16                return [directory, "/", filename].concat();
17            }
18        }
19
20        for suffix in K_SUFFIXES {
21            if has_suffix(directory, suffix) {
22                directory = &directory[..directory.len() - suffix.len()];
23                return [directory, "/", filename].concat();
24            }
25        }
26
27        [directory, "/", filename].concat()
28    }
29}