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 extern "C" { 15 #include "lua.h" 16 #include "lualib.h" 17 #include "lauxlib.h" 18 } 19 read_into_data(const char file[])20static SkData* read_into_data(const char file[]) { 21 SkData* data = SkData::NewFromFileName(file); 22 if (!data) { 23 data = SkData::NewEmpty(); 24 } 25 return data; 26 } 27 28 int tool_main(int argc, char** argv); tool_main(int argc,char ** argv)29int tool_main(int argc, char** argv) { 30 SkAutoGraphics ag; 31 SkLua L; 32 33 for (int i = 1; i < argc; ++i) { 34 SkData* data = NULL; 35 const void* ptr; 36 size_t len; 37 38 if (!strcmp(argv[i], "--lua") && i < argc-1) { 39 ptr = argv[i + 1]; 40 len = strlen(argv[i + 1]); 41 i += 1; 42 } else { 43 data = read_into_data(argv[i]); 44 ptr = data->data(); 45 len = data->size(); 46 } 47 if (!L.runCode(ptr, len)) { 48 SkDebugf("failed to load %s\n", argv[i]); 49 exit(-1); 50 } 51 SkSafeUnref(data); 52 } 53 return 0; 54 } 55 56 #if !defined SK_BUILD_FOR_IOS main(int argc,char * const argv[])57int main(int argc, char * const argv[]) { 58 return tool_main(argc, (char**) argv); 59 } 60 #endif 61