On Wednesday, 10 July 2013 at 12:03:06 UTC, eles wrote:
On Wednesday, 10 July 2013 at 10:24:17 UTC, Joseph Rushton Wakeling wrote:
On 07/10/2013 02:07 AM, H. S. Teoh wrote:
Comments / flames / pull requests welcome. ;-)

   string findGDC(string argv0)
   {
       // FIXME: this does not work 100% of the time.
auto c = match(baseName(argv0), `^(.*-)?g?dmd(-.*)?$`).captures;
       auto targetPrefix = c[1];
       auto gdcDir = absolutePath(dirName(argv0));
return buildNormalizedPath(gdcDir, targetPrefix ~ "gdc" ~ c[2]);
   }

Quick and unportable (Linux-only) drop-in replacement:

string findGDC(string argv0)
{
    // FIXME: this does not work 100% of the time.
auto c = match(baseName(argv0), `^(.*-)?g?dmd(-.*)?$`).captures;
    auto targetPrefix = c[1];
        
        auto which = executeShell("which gdc");
        if (which.status == 0){
                writeln("Failed to execute which.");
        }
        else {
                writefln("which returned %s", which.output);
        }
        
        auto gdcDir = absolutePath(dirName(which.output));
        writefln("new findGDC: gdcDir=%s", gdcDir);
return buildNormalizedPath(gdcDir, targetPrefix ~ "gdc" ~ c[2]);
}

Reply via email to