| // Copyright 2015 The Chromium 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 "chromecast/base/path_utils.h" |
| |
| #include "base/logging.h" |
| #include "base/path_service.h" |
| |
| namespace chromecast { |
| |
| namespace { |
| |
| base::FilePath GetPath(base::BasePathKey default_dir_key, |
| const base::FilePath& path) { |
| if (path.IsAbsolute()) |
| return path; |
| |
| base::FilePath default_dir; |
| if (!PathService::Get(default_dir_key, &default_dir)) |
| LOG(DFATAL) << "Cannot get default dir: " << default_dir_key; |
| |
| base::FilePath adjusted_path(default_dir.Append(path)); |
| VLOG(1) << "Path adjusted from " << path.value() << " to " |
| << adjusted_path.value(); |
| return adjusted_path; |
| } |
| |
| } // namespace |
| |
| base::FilePath GetHomePath(const base::FilePath& path) { |
| return GetPath(base::DIR_HOME, path); |
| } |
| |
| base::FilePath GetHomePathASCII(const std::string& path) { |
| return GetHomePath(base::FilePath(path)); |
| } |
| |
| base::FilePath GetBinPath(const base::FilePath& path) { |
| return GetPath(base::DIR_EXE, path); |
| } |
| |
| base::FilePath GetBinPathASCII(const std::string& path) { |
| return GetBinPath(base::FilePath(path)); |
| } |
| |
| base::FilePath GetTmpPath(const base::FilePath& path) { |
| return GetPath(base::DIR_TEMP, path); |
| } |
| |
| base::FilePath GetTmpPathASCII(const std::string& path) { |
| return GetTmpPath(base::FilePath(path)); |
| } |
| |
| } // namespace chromecast |