Skip to content

Commit

Permalink
Merge pull request #1190 from h2o/i110/mruby-preloads-error
Browse files Browse the repository at this point in the history
adds better error message when preloads.rb not found
  • Loading branch information
kazuho committed Feb 13, 2017
2 parents fe52e24 + 28b8814 commit a374036
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions lib/handler/mruby.c
Expand Up @@ -65,11 +65,15 @@ void h2o_mruby_setup_globals(mrb_state *mrb)
h2o_mruby_assert(mrb);

/* require core modules and include built-in libraries */
h2o_mruby_eval_expr(mrb, "require \"preloads.rb\"");
h2o_mruby_eval_expr(mrb, "require \"#{$H2O_ROOT}/share/h2o/mruby/preloads.rb\"");
if (mrb->exc != NULL) {
mrb_value obj = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0);
struct RString *error = mrb_str_ptr(obj);
fprintf(stderr, "an error occurred while loading %s/%s: %s", root, "share/h2o/mruby/preloads.rb", error->as.heap.ptr);
if (mrb_obj_is_instance_of(mrb, mrb_obj_value(mrb->exc), mrb_class_get(mrb, "LoadError"))) {
fprintf(stderr, "file \"%s/%s\" not found. Did you forget to run `make install` ?", root, "share/h2o/mruby/preloads.rb");
} else {
mrb_value obj = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0);
struct RString *error = mrb_str_ptr(obj);
fprintf(stderr, "an error occurred while loading %s/%s: %s", root, "share/h2o/mruby/preloads.rb", error->as.heap.ptr);
}
abort();
}
}
Expand Down

0 comments on commit a374036

Please sign in to comment.