blob: 4e9385ae171838dd2bafd3deb59dbc1c4d91212e [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/lib/pkg_url/url_resolver.h"
#include "src/lib/fxl/strings/ascii.h"
namespace component {
namespace {
constexpr char kFileUriPrefix[] = "file://";
constexpr size_t kFileUriPrefixLength = sizeof(kFileUriPrefix) - 1;
} // namespace
std::string CanonicalizeURL(const std::string& url) {
if (!url.empty() && url.find(':') == std::string::npos)
return kFileUriPrefix + url;
return url;
}
std::string GetSchemeFromURL(const std::string& url) {
size_t len = url.find(':');
if (len == std::string::npos)
return std::string();
std::string result(len, 0);
for (size_t i = 0; i < len; ++i)
result[i] = fxl::ToLowerASCII(url[i]);
return result;
}
std::string GetPathFromURL(const std::string& url) {
if (url.find(kFileUriPrefix) == 0)
return url.substr(kFileUriPrefixLength);
return std::string();
}
std::string GetURLFromPath(const std::string& path) { return kFileUriPrefix + path; }
} // namespace component