static void backend_exception_check(int errorcode) { if (errorcode < 0) rb_raise(rb_eRuntimeError, "%s\n(error code %d)", git_lasterror(), errorcode); git_clearerror(); }
int run_command(git_cb fn, int argc, char **argv) { int error; git_repository *repo; error = git_repository_open(&repo, ".git"); if (error < GIT_SUCCESS) repo = NULL; error = fn(repo, argc, argv); if (error < GIT_SUCCESS) fprintf(stderr, "booh:\n %s\n", git_lasterror()); if(repo) git_repository_free(repo); return !!error; }