int main(int argc, char *argv[]) { if( argc != 2 ) { printf("Usage: %s <xxxx.mrb>\n", argv[0]); return 1; } uint8_t *mrbbuf = load_mrb_file( argv[1] ); if( mrbbuf == 0 ) return 1; mrubyc( mrbbuf ); free( mrbbuf ); return 0; }
static void load_file(mrb_state *mrb, mrb_value filepath) { char *ext = strrchr(RSTRING_PTR(filepath), '.'); if (!ext || strcmp(ext, ".rb") == 0) { load_rb_file(mrb, filepath); } else if (strcmp(ext, ".mrb") == 0) { load_mrb_file(mrb, filepath); } else if (strcmp(ext, ".so") == 0 || strcmp(ext, ".dll") == 0 || strcmp(ext, ".dylib") == 0) { load_so_file(mrb, filepath); } else { load_rb_file(mrb, filepath); } }