specify application name

This commit is contained in:
orignal 2014-11-17 15:28:52 -05:00
parent 439b8798c9
commit 2988395b81
3 changed files with 21 additions and 6 deletions

View File

@ -18,14 +18,14 @@ namespace api
void InitI2P (int argc, char* argv[]) void InitI2P (int argc, char* argv[])
{ {
i2p::util::filesystem::SetAppName (argv[0]);
i2p::util::config::OptionParser(argc, argv); i2p::util::config::OptionParser(argc, argv);
i2p::context.Init (); i2p::context.Init ();
} }
void StartI2P () void StartI2P ()
{ {
std::string logfilePath ("libi2pd.log"); StartLog (i2p::util::filesystem::GetAppName () + ".log");
StartLog (logfilePath);
i2p::data::netdb.Start(); i2p::data::netdb.Start();
LogPrint("NetDB started"); LogPrint("NetDB started");
i2p::transport::transports.Start(); i2p::transport::transports.Start();

View File

@ -101,6 +101,18 @@ namespace config
namespace filesystem namespace filesystem
{ {
std::string appName ("i2pd");
void SetAppName (const std::string& name)
{
appName = name;
}
std::string GetAppName ()
{
return appName;
}
const boost::filesystem::path &GetDataDir() const boost::filesystem::path &GetDataDir()
{ {
static boost::filesystem::path path; static boost::filesystem::path path;
@ -178,10 +190,10 @@ namespace filesystem
// Windows // Windows
char localAppData[MAX_PATH]; char localAppData[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_APPDATA, 0, NULL, localAppData); SHGetFolderPath(NULL, CSIDL_APPDATA, 0, NULL, localAppData);
return boost::filesystem::path(std::string(localAppData) + "\\i2pd"); return boost::filesystem::path(std::string(localAppData) + "\\" + appName);
#else #else
if (i2p::util::config::GetArg("-service", 0)) // use system folder if (i2p::util::config::GetArg("-service", 0)) // use system folder
return boost::filesystem::path("/var/lib/i2pd"); return boost::filesystem::path(std::string ("/var/lib/") + appName);
boost::filesystem::path pathRet; boost::filesystem::path pathRet;
char* pszHome = getenv("HOME"); char* pszHome = getenv("HOME");
if (pszHome == NULL || strlen(pszHome) == 0) if (pszHome == NULL || strlen(pszHome) == 0)
@ -192,10 +204,10 @@ namespace filesystem
// Mac // Mac
pathRet /= "Library/Application Support"; pathRet /= "Library/Application Support";
boost::filesystem::create_directory(pathRet); boost::filesystem::create_directory(pathRet);
return pathRet / "i2pd"; return pathRet / appName;
#else #else
// Unix // Unix
return pathRet / ".i2pd"; return pathRet / (std::string (".") + appName);
#endif #endif
#endif #endif
} }

3
util.h
View File

@ -25,6 +25,9 @@ namespace util
namespace filesystem namespace filesystem
{ {
void SetAppName (const std::string& name);
std::string GetAppName ();
const boost::filesystem::path &GetDataDir(); const boost::filesystem::path &GetDataDir();
std::string GetFullPath (const std::string& filename); std::string GetFullPath (const std::string& filename);
boost::filesystem::path GetDefaultDataDir(); boost::filesystem::path GetDefaultDataDir();