/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkLua.h" #include "SkGraphics.h" #include "SkStream.h" #include "SkData.h" #include "SkOSFile.h" extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } static SkData* read_into_data(const char file[]) { SkAutoTUnref stream(SkStream::NewFromFile(file)); if (!stream.get()) { return SkData::NewEmpty(); } size_t len = stream->getLength(); void* buffer = sk_malloc_throw(len); stream->read(buffer, len); return SkData::NewFromMalloc(buffer, len); } int tool_main(int argc, char** argv); int tool_main(int argc, char** argv) { SkAutoGraphics ag; SkLua L; for (int i = 1; i < argc; ++i) { SkData* data = NULL; const void* ptr; size_t len; if (!strcmp(argv[i], "--lua") && i < argc-1) { ptr = argv[i + 1]; len = strlen(argv[i + 1]); i += 1; } else { data = read_into_data(argv[i]); ptr = data->data(); len = data->size(); } if (!L.runCode(ptr, len)) { SkDebugf("failed to load %s\n", argv[i]); exit(-1); } SkSafeUnref(data); } return 0; } #if !defined SK_BUILD_FOR_IOS int main(int argc, char * const argv[]) { return tool_main(argc, (char**) argv); } #endif