Home | History | Annotate | Download | only in lua
      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 
     20 static 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);
     29 int 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
     57 int main(int argc, char * const argv[]) {
     58     return tool_main(argc, (char**) argv);
     59 }
     60 #endif
     61