1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "SkLua.h" 9 #include "SkGraphics.h" 10 #include "SkStream.h" 11 #include "SkData.h" 12 #include "SkOSFile.h" 13 14 #include <stdlib.h> 15 16 extern "C" { 17 #include "lua.h" 18 #include "lualib.h" 19 #include "lauxlib.h" 20 } 21 22 static SkData* read_into_data(const char file[]) { 23 SkData* data = SkData::NewFromFileName(file); 24 if (!data) { 25 data = SkData::NewEmpty(); 26 } 27 return data; 28 } 29 30 int tool_main(int argc, char** argv); 31 int tool_main(int argc, char** argv) { 32 SkAutoGraphics ag; 33 SkLua L; 34 35 for (int i = 1; i < argc; ++i) { 36 SkData* data = nullptr; 37 const void* ptr; 38 size_t len; 39 40 if (!strcmp(argv[i], "--lua") && i < argc-1) { 41 ptr = argv[i + 1]; 42 len = strlen(argv[i + 1]); 43 i += 1; 44 } else { 45 data = read_into_data(argv[i]); 46 ptr = data->data(); 47 len = data->size(); 48 } 49 if (!L.runCode(ptr, len)) { 50 SkDebugf("failed to load %s\n", argv[i]); 51 exit(-1); 52 } 53 SkSafeUnref(data); 54 } 55 return 0; 56 } 57 58 #if !defined SK_BUILD_FOR_IOS 59 int main(int argc, char * const argv[]) { 60 return tool_main(argc, (char**) argv); 61 } 62 #endif 63