38 lines
854 B
C++
38 lines
854 B
C++
#include "binding/definitions.h"
|
|
|
|
int main(int argc, char *argv[]) {
|
|
definitions::setup();
|
|
|
|
char *startup_script = nullptr;
|
|
if (argc > 1)
|
|
startup_script = argv[1];
|
|
|
|
if (startup_script) {
|
|
if (FILE *file = fopen(startup_script, "r")) {
|
|
fseek(file, 0, SEEK_END);
|
|
size_t size = ftell(file);
|
|
fseek(file, 0, SEEK_SET);
|
|
|
|
char *script_content = (char *)malloc(size + 1);
|
|
fread(script_content, 1, size, file);
|
|
script_content[size] = '\0';
|
|
|
|
fclose(file);
|
|
|
|
Ruby::run_string(script_content, size);
|
|
free(script_content);
|
|
|
|
if (Ruby::mrb->exc) {
|
|
mrb_print_error(Ruby::mrb);
|
|
Ruby::mrb->exc = 0;
|
|
}
|
|
|
|
printf("Ran: %s\n", startup_script);
|
|
} else {
|
|
fprintf(stderr, "Failed to open startup script: %s\n", startup_script);
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
} |