mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 10:03:45 +01:00
Print error when HOME is not set (#7376)
In some configurations, such as when using the runit supervisor and its tool chpst, the HOME variable might be unset. This resulted in an unclear error message that was hard to pin down.
This commit is contained in:
parent
a78659ed05
commit
67ed56be3b
@ -351,6 +351,21 @@ bool getCurrentExecPath(char *buf, size_t len)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//// Non-Windows
|
||||||
|
#if !defined(_WIN32)
|
||||||
|
|
||||||
|
const char *getHomeOrFail()
|
||||||
|
{
|
||||||
|
const char *home = getenv("HOME");
|
||||||
|
// In rare cases the HOME environment variable may be unset
|
||||||
|
FATAL_ERROR_IF(!home,
|
||||||
|
"Required environment variable HOME is not set");
|
||||||
|
return home;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//// Windows
|
//// Windows
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
|
|
||||||
@ -430,7 +445,7 @@ bool setSystemPaths()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __ANDROID__
|
#ifndef __ANDROID__
|
||||||
path_user = std::string(getenv("HOME")) + DIR_DELIM "."
|
path_user = std::string(getHomeOrFail()) + DIR_DELIM "."
|
||||||
+ PROJECT_NAME;
|
+ PROJECT_NAME;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -454,7 +469,7 @@ bool setSystemPaths()
|
|||||||
}
|
}
|
||||||
CFRelease(resources_url);
|
CFRelease(resources_url);
|
||||||
|
|
||||||
path_user = std::string(getenv("HOME"))
|
path_user = std::string(getHomeOrFail())
|
||||||
+ "/Library/Application Support/"
|
+ "/Library/Application Support/"
|
||||||
+ PROJECT_NAME;
|
+ PROJECT_NAME;
|
||||||
return true;
|
return true;
|
||||||
@ -466,7 +481,7 @@ bool setSystemPaths()
|
|||||||
bool setSystemPaths()
|
bool setSystemPaths()
|
||||||
{
|
{
|
||||||
path_share = STATIC_SHAREDIR;
|
path_share = STATIC_SHAREDIR;
|
||||||
path_user = std::string(getenv("HOME")) + DIR_DELIM "."
|
path_user = std::string(getHomeOrFail()) + DIR_DELIM "."
|
||||||
+ lowercase(PROJECT_NAME);
|
+ lowercase(PROJECT_NAME);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user