On Windows, look for config in dcd.conf, on posix default to ~/.config/dcd

This commit is contained in:
Dylan Knutson 2013-08-18 17:16:52 -07:00
parent bb0fe7ccce
commit d01050f316
2 changed files with 22 additions and 13 deletions

View File

@ -110,7 +110,7 @@ In future versions the client may start the server if it is not running, but for
now it must be started manually.
## Configuration Files
The server will attempt to read the file ```~/.config/dcd``` on startup.
The server will attempt to read the file ```~/.config/dcd``` on Posix systems, or ```dcd.conf``` on Windows in the current working directory on startup.
If it exists, each line of the file is interpreted as a path that should be
searched when looking for module imports.

View File

@ -32,8 +32,14 @@ import messages;
import autocomplete;
import modulecache;
// TODO: Portability would be nice...
enum CONFIG_FILE_PATH = "~/.config/dcd";
version(Posix)
{
enum CONFIG_FILE_PATH = "~/.config/dcd";
}
else version(Windows)
{
enum CONFIG_FILE_PATH = "dcd.conf";
}
int main(string[] args)
{
@ -135,19 +141,22 @@ int main(string[] args)
return 0;
}
version(linux)
{
string[] loadConfiguredImportDirs()
{
string fullPath = expandTilde(CONFIG_FILE_PATH);
if (!exists(fullPath))
return [];
File f = File(fullPath);
return f.byLine(KeepTerminator.no).map!(a => a.idup).filter!(a => a.exists()).array();
version(Windows)
{
string fullPath = buildPath(getcwd(), CONFIG_FILE_PATH);
}
else version(Posix)
{
string fullPath = expandTilde(CONFIG_FILE_PATH);
}
if (!exists(fullPath))
return [];
File f = File(fullPath);
return f.byLine(KeepTerminator.no).map!(a => a.idup).filter!(a => a.exists()).array();
}
}
else
static assert (false, "Only Linux is supported at the moment");
void printHelp(string programName)
{