1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/base_paths.h" 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/file_path.h" 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/file_util.h" 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/path_service.h" 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace base { 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottbool PathProvider(int key, FilePath* result) { 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // NOTE: DIR_CURRENT is a special cased in PathService::Get 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott FilePath cur; 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott switch (key) { 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott case base::DIR_EXE: 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott PathService::Get(base::FILE_EXE, &cur); 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott cur = cur.DirName(); 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott break; 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott case base::DIR_MODULE: 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott PathService::Get(base::FILE_MODULE, &cur); 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott cur = cur.DirName(); 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott break; 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott case base::DIR_TEMP: 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if (!file_util::GetTempDir(&cur)) 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return false; 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott break; 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott default: 31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return false; 32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott *result = cur; 35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return true; 36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} // namespace base 39