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