Example #1
0
//==============================================================================
static file resolvexdgfolder (const char* const type, const char* const fallbackfolder)
{
    file userdirs ("~/.config/user-dirs.dirs");
    stringarray conflines;

    if (userdirs.existsasfile())
    {
        fileinputstream in (userdirs);

        if (in.openedok())
            conflines.addlines (in.readentirestreamasstring());
    }

    for (int i = 0; i < conflines.size(); ++i)
    {
        const string line (conflines[i].trimstart());

        if (line.startswith (type))
        {
            // eg. resolve xdg_music_dir="$home/music" to /home/user/music
            const file f (line.replace ("$home", file ("~").getfullpathname())
                              .fromfirstoccurrenceof ("=", false, false)
                              .trim().unquoted());

            if (f.isdirectory())
                return f;
        }
    }

    return file (fallbackfolder);
}