std::string ResolveIgniteHome(const std::string& path) { // 1. Check passed argument. if (IsValidDirectory(path)) return path; // 2. Check environment variable. std::string home = GetEnv(IGNITE_HOME); if (IsValidDirectory(home)) return home; // 3. Check current work dir. DWORD curDirLen = GetCurrentDirectoryA(0, NULL); if (!curDirLen) return std::string(); FixedSizeArray<char> curDir(curDirLen); curDirLen = GetCurrentDirectoryA(curDir.GetSize(), curDir.GetData()); if (!curDirLen) return std::string(); std::string curDirStr(curDir.GetData()); return ResolveIgniteHome0(curDirStr); }
std::string ResolveIgniteHome(const std::string& path) { // 1. Check passed argument. if (IsValidDirectory(path)) return path; // 2. Check environment variable. std::string home = GetEnv(IGNITE_HOME); if (IsValidDirectory(home)) return home; // 3. Check current work dir. FixedSizeArray<char> curDir(1024 * 16); char* res = getcwd(curDir.GetData(), curDir.GetSize()); if (!res) return std::string(); std::string curDirStr(curDir.GetData()); return ResolveIgniteHome0(curDirStr); }