use LazyLock;
use Regex;
/// The path to the global git config file, relative to `$XDG_CONFIG_PATH` (or `$HOME/.config` when
/// not set).
pub static GLOBAL_GIT_CONFIG_PATH: &str = "git/config";
/// The path to the legacy global git config file relative to `$HOME`.
pub static LEGACY_GLOBAL_GIT_CONFIG_PATH: &str = ".gitconfig";
/// A regex to parse `core.excludesfile` from the global git config file ([`GLOBAL_GIT_CONFIG_PATH`],
/// [`LEGACY_GLOBAL_GIT_CONFIG_PATH`]).
///
/// Ideally this would be a full INI parser with support for all ways in which git config files can
/// be formatted, but this regular expression should cover _most_ of the common cases.
pub static GLOBAL_GIT_CONFIG_EXCLUDE_PATH_REGEX: = new;
/// The default global git exclude path, when `core.excludesfile` is not defined
/// in any of the config files ([`GLOBAL_GIT_CONFIG_PATH`], [`LEGACY_GLOBAL_GIT_CONFIG_PATH`]).
pub static DEFAULT_GLOBAL_GIT_EXCLUDE_PATH: &str = "git/ignore";
/// The path to the local `.git` path relative to the repository root.
pub static LOCAL_GIT_PATH: &str = ".git";
/// The filename of the `.gitignore` files inside a repository root.
pub static GITIGNORE_FILE: &str = ".gitignore";
/// The path to the local git config file relative to the git repository
/// root.
pub static LOCAL_GIT_EXCLUDE_PATH: &str = ".git/info/exclude";