std::unique_ptr<ConfigFetcher>
ConfigFetcher::create(const Uri& uri)
{
    if (ArakoonUrl::is_one(uri))
    {
        return std::make_unique<ArakoonConfigFetcher>(ArakoonUrl(uri));
    }
    else if (EtcdUrl::is_one(uri))
    {
        return std::make_unique<EtcdConfigFetcher>(EtcdUrl(uri));
    }
    else if (FileUrl::is_one(uri))
    {
        return std::make_unique<FileConfigFetcher>(FileUrl(uri));
    }
    else
    {
        LOG_ERROR("Unsupported URI " << uri);
        throw Exception("Unsupported URI");
    }
}
std::wstring FirstRunPageFileUrl()
{
  return FileUrl(HtmlFolderPath() + L"firstRun.html");
}
std::wstring UserSettingsFileUrl()
{
  return FileUrl(HtmlFolderPath() + L"index.html");
}