| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file_util.h" | 5 #include "base/files/file_util.h" |
| 6 #include "tools/gn/err.h" | 6 #include "tools/gn/err.h" |
| 7 #include "tools/gn/filesystem_utils.h" | 7 #include "tools/gn/filesystem_utils.h" |
| 8 #include "tools/gn/functions.h" | 8 #include "tools/gn/functions.h" |
| 9 #include "tools/gn/input_conversion.h" | 9 #include "tools/gn/input_conversion.h" |
| 10 #include "tools/gn/input_file.h" | 10 #include "tools/gn/input_file.h" |
| 11 #include "tools/gn/scheduler.h" | 11 #include "tools/gn/scheduler.h" |
| 12 | 12 |
| 13 // TODO(brettw) consider removing this. I originally wrote it for making the | 13 // TODO(brettw) consider removing this. I originally wrote it for making the |
| 14 // WebKit bindings but misundersood what was required, and didn't need to | 14 // WebKit bindings but misundersood what was required, and didn't need to |
| 15 // use this. This seems to have a high potential for misuse. | 15 // use this. This seems to have a high potential for misuse. |
| 16 | 16 |
| 17 namespace functions { | 17 namespace functions { |
| 18 | 18 |
| 19 const char kReadFile[] = "read_file"; | 19 const char kReadFile[] = "read_file"; |
| 20 const char kReadFile_HelpShort[] = | 20 const char kReadFile_HelpShort[] = |
| 21 "read_file: Read a file into a variable."; | 21 "read_file: Read a file into a variable."; |
| 22 const char kReadFile_Help[] = | 22 const char kReadFile_Help[] = |
| 23 "read_file: Read a file into a variable.\n" | 23 R"(read_file: Read a file into a variable. |
| 24 "\n" | 24 |
| 25 " read_file(filename, input_conversion)\n" | 25 read_file(filename, input_conversion) |
| 26 "\n" | 26 |
| 27 " Whitespace will be trimmed from the end of the file. Throws an error\n" | 27 Whitespace will be trimmed from the end of the file. Throws an error if the |
| 28 " if the file can not be opened.\n" | 28 file can not be opened. |
| 29 "\n" | 29 |
| 30 "Arguments:\n" | 30 Arguments |
| 31 "\n" | 31 |
| 32 " filename\n" | 32 filename |
| 33 " Filename to read, relative to the build file.\n" | 33 Filename to read, relative to the build file. |
| 34 "\n" | 34 |
| 35 " input_conversion\n" | 35 input_conversion |
| 36 " Controls how the file is read and parsed.\n" | 36 Controls how the file is read and parsed. See "gn help input_conversion". |
| 37 " See \"gn help input_conversion\".\n" | 37 |
| 38 "\n" | 38 Example |
| 39 "Example\n" | 39 |
| 40 " lines = read_file(\"foo.txt\", \"list lines\")\n"; | 40 lines = read_file("foo.txt", "list lines") |
| 41 )"; |
| 41 | 42 |
| 42 Value RunReadFile(Scope* scope, | 43 Value RunReadFile(Scope* scope, |
| 43 const FunctionCallNode* function, | 44 const FunctionCallNode* function, |
| 44 const std::vector<Value>& args, | 45 const std::vector<Value>& args, |
| 45 Err* err) { | 46 Err* err) { |
| 46 if (args.size() != 2) { | 47 if (args.size() != 2) { |
| 47 *err = Err(function->function(), "Wrong number of arguments to read_file", | 48 *err = Err(function->function(), "Wrong number of arguments to read_file", |
| 48 "I expected two arguments."); | 49 "I expected two arguments."); |
| 49 return Value(); | 50 return Value(); |
| 50 } | 51 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 69 *err = Err(args[0], "Could not read file.", | 70 *err = Err(args[0], "Could not read file.", |
| 70 "I resolved this to \"" + FilePathToUTF8(file_path) + "\"."); | 71 "I resolved this to \"" + FilePathToUTF8(file_path) + "\"."); |
| 71 return Value(); | 72 return Value(); |
| 72 } | 73 } |
| 73 | 74 |
| 74 return ConvertInputToValue(scope->settings(), file_contents, function, | 75 return ConvertInputToValue(scope->settings(), file_contents, function, |
| 75 args[1], err); | 76 args[1], err); |
| 76 } | 77 } |
| 77 | 78 |
| 78 } // namespace functions | 79 } // namespace functions |
| OLD | NEW |