/* --- Object ctors/dtors */ static rpmaug rpmaug_init(JSContext *cx, JSObject *obj, const char *_root, const char *_loadpath, unsigned int _flags) { rpmaug aug; if ((aug = rpmaugNew(_root, _loadpath, _flags)) == NULL) return NULL; if (!JS_SetPrivate(cx, obj, aug)) { /* XXX error msg */ (void) rpmaugFree(aug); return NULL; } return aug; }
int main(int argc, char **argv) { poptContext optCon = rpmioInit(argc, argv, optionsTable); const char ** av = NULL; int ac; int r = -1; _rpmaug_debug = -1; if (_rpmaugLoadargv != NULL) _rpmaugLoadpath = argvJoin(_rpmaugLoadargv, PATH_SEP_CHAR); _rpmaugI = rpmaugNew(_rpmaugRoot, _rpmaugLoadpath, _rpmaugFlags); if (_rpmaugI == NULL) { fprintf(stderr, "Failed to initialize Augeas\n"); goto exit; } #if defined(WITH_READLINE) readline_init(); #endif av = poptGetArgs(optCon); ac = argvCount(av); if (ac > 0) { // Accept one command from the command line const char * cmd = argvJoin(av, ' '); const char *buf; buf = NULL; r = rpmaugRun(NULL, cmd, &buf); cmd = _free(cmd); if (buf && *buf) fprintf(stdout, "%s", buf); } else { r = main_loop(); } exit: if (_rpmaugLoadargv) _rpmaugLoadpath = _free(_rpmaugLoadpath); _rpmaugLoadargv = argvFree(_rpmaugLoadargv); _rpmaugI = rpmaugFree(_rpmaugI); optCon = rpmioFini(optCon); return (r == 0 ? EXIT_SUCCESS : EXIT_FAILURE); }