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 #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