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 16extern "C" { 17 #include "lua.h" 18 #include "lualib.h" 19 #include "lauxlib.h" 20} 21 22static 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 30int tool_main(int argc, char** argv); 31int 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 59int main(int argc, char * const argv[]) { 60 return tool_main(argc, (char**) argv); 61} 62#endif 63