[sql] Integrate SQLite recover.c module.
[chromium-blink-merge.git] / base / base_paths.cc
blob9f2b250561f16901f29b6bf7bfd057f0337af5fd
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/base_paths.h"
7 #include "base/file_util.h"
8 #include "base/files/file_path.h"
9 #include "base/path_service.h"
11 namespace base {
13 bool PathProvider(int key, FilePath* result) {
14 // NOTE: DIR_CURRENT is a special case in PathService::Get
16 FilePath cur;
17 switch (key) {
18 case DIR_EXE:
19 PathService::Get(FILE_EXE, &cur);
20 cur = cur.DirName();
21 break;
22 case DIR_MODULE:
23 PathService::Get(FILE_MODULE, &cur);
24 cur = cur.DirName();
25 break;
26 case DIR_TEMP:
27 if (!file_util::GetTempDir(&cur))
28 return false;
29 break;
30 case DIR_TEST_DATA:
31 if (!PathService::Get(DIR_SOURCE_ROOT, &cur))
32 return false;
33 cur = cur.Append(FILE_PATH_LITERAL("base"));
34 cur = cur.Append(FILE_PATH_LITERAL("test"));
35 cur = cur.Append(FILE_PATH_LITERAL("data"));
36 if (!base::PathExists(cur)) // We don't want to create this.
37 return false;
38 break;
39 default:
40 return false;
43 *result = cur;
44 return true;
47 } // namespace base