int export_secsubkeys( strlist_t users ) { /* Use only relevant options for the secret key. */ unsigned int options = (opt.export_options & EXPORT_SEXP_FORMAT); return do_export( users, 2, options ); }
/* Export environmental variables */ static int builtin_export(unsigned argc, const char **argv) { int ret = 0; unsigned i; for (i = 0; i < argc; i++) { ret = do_export(argv[i]); if (ret) break; } return ret; }
static void event_handler (vbi_event * ev, void * user_data) { vbi_pgno pgno; vbi_subno subno; user_data = user_data; /* unused */ if (quit) return; switch (ev->type) { case VBI_EVENT_TTX_PAGE: pgno = ev->ev.ttx_page.pgno; subno = ev->ev.ttx_page.subno; if (option_log_mask & VBI_LOG_INFO) { fprintf (stderr, "Teletext page %03x.%02x %c", pgno, subno, cr); } if (0 == vbi_page_table_num_pages (pt)) { do_export (pgno, subno); } else if (vbi_page_table_contains_page (pt, pgno)) { do_export (pgno, subno); if (!option_subtitles) { vbi_page_table_remove_page (pt, pgno); quit = (0 == vbi_page_table_num_pages (pt)); } } break; default: assert (0); } }
int main( int argc, char **argv ) { progname = argv[0]; if(argc > 1 && !strcmp(argv[1], "import")){ do_import(argc, argv); } else if(argc > 1 && !strcmp(argv[1], "export")){ do_export(argc, argv); } else { usage(); } return 0; }
void export_cube_base::perform(const std::string &name, const std::string &desc, const mat &data) { static const char method[] = "add(const std::string &, " "const std::string &, const mat &)"; if (data.n_rows != data.n_cols) { libwfa_exception(k_clazz, method, __FILE__, __LINE__, "data"); } if (m_dms.find(name) != m_dms.end()) { libwfa_exception(k_clazz, method, __FILE__, __LINE__, name.c_str()); } dm_data *ptr = new dm_data(desc, data); m_dms.insert(dm_list::value_type(name, ptr)); if (m_nmax != 0 && m_dms.size() + m_orbs.size() > m_nmax) do_export(); }
void export_cube_base::perform(const std::string &name, const std::string &desc, const std::vector<size_t> &idx, const mat &vecs) { static const char method[] = "add(const std::string &, const std::string &, " "const std::vector<size_t> &, const mat &)"; if (idx.size() != vecs.n_cols) { libwfa_exception(k_clazz, method, __FILE__, __LINE__, "idx"); } if (m_orbs.find(name) != m_orbs.end()) { libwfa_exception(k_clazz, method, __FILE__, __LINE__, name.c_str()); } orb_data *ptr = new orb_data(desc, idx, vecs); m_orbs.insert(orb_list::value_type(name, ptr)); if (m_nmax != 0 && m_dms.size() + m_orbs.size() > m_nmax) do_export(); }
int h2o_socket_export(h2o_socket_t *sock, h2o_socket_export_t *info) { static h2o_buffer_prototype_t nonpooling_prototype = {}; assert(!h2o_socket_is_writing(sock)); if (do_export(sock, info) == -1) return -1; if ((info->ssl = sock->ssl) != NULL) { sock->ssl = NULL; h2o_buffer_set_prototype(&info->ssl->input.encrypted, &nonpooling_prototype); } info->input = sock->input; h2o_buffer_set_prototype(&info->input, &nonpooling_prototype); h2o_buffer_init(&sock->input, &h2o_socket_buffer_prototype); h2o_socket_close(sock); return 0; }
static vbi_bool event_handler (const vbi_event * ev, void * user_data) { vbi_pgno pgno; vbi_subno subno; user_data = user_data; /* unused */ if (quit) return TRUE; switch (ev->type) { case VBI_EVENT_TTX_PAGE: pgno = ev->ev.ttx_page.pgno; subno = ev->ev.ttx_page.subno; if (option_log_mask & VBI_LOG_INFO) { fprintf (stderr, "Teletext page %03x.%02x %c", pgno, subno, cr); } if (0 == vbi_page_table_num_pages (pt)) { do_export (pgno, subno, ev->timestamp); } else if (vbi_page_table_contains_page (pt, pgno)) { do_export (pgno, subno, ev->timestamp); if (!option_subtitles) { vbi_page_table_remove_page (pt, pgno); quit = (0 == vbi_page_table_num_pages (pt)); } } break; case VBI_EVENT_CC_PAGE: if (option_row_update && !(ev->ev.caption.flags & VBI_ROW_UPDATE)) break; pgno = ev->ev.caption.channel; if (option_log_mask & VBI_LOG_INFO) { fprintf (stderr, "Caption channel %u %c", pgno, cr); } if (pgno != cc_chan) break; do_export (pgno, VBI_ANY_SUBNO, ev->timestamp); break; case VBI_EVENT_PAGE_TYPE: update_page_table (); break; default: assert (0); } return TRUE; /* handled */ }
/**************** * Export the public keys (to standard out or --output). * Depending on opt.armor the output is armored. * options are defined in main.h. * If USERS is NULL, the complete ring will be exported. */ int export_pubkeys( strlist_t users, unsigned int options ) { return do_export( users, 0, options ); }
int main (int argc, char **argv) { g_autofree const char *old_env = NULL; g_autoptr(GError) error = NULL; g_autoptr(BuilderManifest) manifest = NULL; g_autoptr(GOptionContext) context = NULL; const char *app_dir_path = NULL, *manifest_path; g_autofree gchar *json = NULL; g_autoptr(BuilderContext) build_context = NULL; g_autoptr(GFile) base_dir = NULL; g_autoptr(GFile) manifest_file = NULL; g_autoptr(GFile) app_dir = NULL; g_autoptr(BuilderCache) cache = NULL; g_autofree char *cache_branch = NULL; g_autoptr(GFileEnumerator) dir_enum = NULL; g_autoptr(GFileEnumerator) dir_enum2 = NULL; GFileInfo *next = NULL; const char *platform_id = NULL; g_autofree char **orig_argv; gboolean is_run = FALSE; gboolean is_show_deps = FALSE; gboolean app_dir_is_empty = FALSE; g_autoptr(FlatpakContext) arg_context = NULL; int i, first_non_arg, orig_argc; int argnr; setlocale (LC_ALL, ""); g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, message_handler, NULL); g_set_prgname (argv[0]); /* avoid gvfs (http://bugzilla.gnome.org/show_bug.cgi?id=526454) */ old_env = g_strdup (g_getenv ("GIO_USE_VFS")); g_setenv ("GIO_USE_VFS", "local", TRUE); g_vfs_get_default (); if (old_env) g_setenv ("GIO_USE_VFS", old_env, TRUE); else g_unsetenv ("GIO_USE_VFS"); orig_argv = g_memdup (argv, sizeof (char *) * argc); orig_argc = argc; first_non_arg = 1; for (i = 1; i < argc; i++) { if (argv[i][0] != '-') break; first_non_arg = i + 1; if (strcmp (argv[i], "--run") == 0) is_run = TRUE; if (strcmp (argv[i], "--show-deps") == 0) is_show_deps = TRUE; } if (is_run) { context = g_option_context_new ("DIRECTORY MANIFEST COMMAND [args] - Run command in build sandbox"); g_option_context_add_main_entries (context, run_entries, NULL); arg_context = flatpak_context_new (); g_option_context_add_group (context, flatpak_context_get_options (arg_context)); /* We drop the post-command part from the args, these go with the command in the sandbox */ argc = MIN (first_non_arg + 3, argc); } else if (is_show_deps) { context = g_option_context_new ("MANIFEST - Show manifest dependencies"); g_option_context_add_main_entries (context, show_deps_entries, NULL); } else { context = g_option_context_new ("DIRECTORY MANIFEST - Build manifest"); g_option_context_add_main_entries (context, entries, NULL); } if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("Option parsing failed: %s\n", error->message); return 1; } if (opt_version) { g_print ("%s\n", PACKAGE_STRING); exit (EXIT_SUCCESS); } if (opt_verbose) g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, message_handler, NULL); argnr = 1; if (!is_show_deps) { if (argc == argnr) return usage (context, "DIRECTORY must be specified"); app_dir_path = argv[argnr++]; } if (argc == argnr) return usage (context, "MANIFEST must be specified"); manifest_path = argv[argnr++]; if (!g_file_get_contents (manifest_path, &json, NULL, &error)) { g_printerr ("Can't load '%s': %s\n", manifest_path, error->message); return 1; } manifest = (BuilderManifest *) json_gobject_from_data (BUILDER_TYPE_MANIFEST, json, -1, &error); if (manifest == NULL) { g_printerr ("Can't parse '%s': %s\n", manifest_path, error->message); return 1; } if (is_run && argc == 3) return usage (context, "Program to run must be specified"); if (is_show_deps) { if (!builder_manifest_show_deps (manifest, &error)) { g_printerr ("Error running %s: %s\n", argv[3], error->message); return 1; } return 0; } manifest_file = g_file_new_for_path (manifest_path); base_dir = g_file_get_parent (manifest_file); app_dir = g_file_new_for_path (app_dir_path); build_context = builder_context_new (base_dir, app_dir); builder_context_set_keep_build_dirs (build_context, opt_keep_build_dirs); builder_context_set_sandboxed (build_context, opt_sandboxed); builder_context_set_jobs (build_context, opt_jobs); if (opt_arch) builder_context_set_arch (build_context, opt_arch); if (opt_stop_at) { opt_build_only = TRUE; builder_context_set_stop_at (build_context, opt_stop_at); } if (opt_ccache && !builder_context_enable_ccache (build_context, &error)) { g_printerr ("Can't initialize ccache use: %s\n", error->message); return 1; } app_dir_is_empty = !g_file_query_exists (app_dir, NULL) || directory_is_empty (app_dir_path); if (is_run) { g_assert (opt_run); if (app_dir_is_empty) { g_printerr ("App dir '%s' is empty or doesn't exist.\n", app_dir_path); return 1; } if (!builder_manifest_run (manifest, build_context, arg_context, orig_argv + first_non_arg + 2, orig_argc - first_non_arg - 2, &error)) { g_printerr ("Error running %s: %s\n", argv[3], error->message); return 1; } return 0; } g_assert (!opt_run); g_assert (!opt_show_deps); if (!opt_finish_only && !app_dir_is_empty) { if (opt_force_clean) { g_print ("Emptying app dir '%s'\n", app_dir_path); if (!flatpak_rm_rf (app_dir, NULL, &error)) { g_printerr ("Couldn't empty app dir '%s': %s", app_dir_path, error->message); return 1; } } else { g_printerr ("App dir '%s' is not empty. Please delete " "the existing contents.\n", app_dir_path); return 1; } } if (opt_finish_only && app_dir_is_empty) { g_printerr ("App dir '%s' is empty or doesn't exist.\n", app_dir_path); return 1; } if (!builder_manifest_start (manifest, opt_allow_missing_runtimes, build_context, &error)) { g_printerr ("Failed to init: %s\n", error->message); return 1; } if (!opt_finish_only && !opt_disable_download && !builder_manifest_download (manifest, !opt_disable_updates, build_context, &error)) { g_printerr ("Failed to download sources: %s\n", error->message); return 1; } if (opt_download_only) return 0; cache_branch = g_path_get_basename (manifest_path); cache = builder_cache_new (builder_context_get_cache_dir (build_context), app_dir, cache_branch); if (!builder_cache_open (cache, &error)) { g_printerr ("Error opening cache: %s\n", error->message); return 1; } if (opt_disable_cache) /* This disables *lookups*, but we still build the cache */ builder_cache_disable_lookups (cache); builder_manifest_checksum (manifest, cache, build_context); if (!opt_finish_only) { if (!builder_cache_lookup (cache, "init")) { g_autofree char *body = g_strdup_printf ("Initialized %s\n", builder_manifest_get_id (manifest)); if (!builder_manifest_init_app_dir (manifest, build_context, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } if (!builder_cache_commit (cache, body, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } } if (!builder_manifest_build (manifest, cache, build_context, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } } if (!opt_build_only) { if (!builder_manifest_cleanup (manifest, cache, build_context, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } if (!builder_manifest_finish (manifest, cache, build_context, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } if (!builder_manifest_create_platform (manifest, cache, build_context, &error)) { g_printerr ("Error: %s\n", error->message); return 1; } } if (!opt_require_changes) builder_cache_ensure_checkout (cache); if (!opt_build_only && opt_repo && builder_cache_has_checkout (cache)) { g_autoptr(GFile) debuginfo_metadata = NULL; g_print ("Exporting %s to repo\n", builder_manifest_get_id (manifest)); if (!do_export (build_context, &error, builder_context_get_build_runtime (build_context), "--exclude=/lib/debug/*", "--include=/lib/debug/app", builder_context_get_separate_locales (build_context) ? "--exclude=/share/runtime/locale/*/*" : skip_arg, opt_repo, app_dir_path, builder_manifest_get_branch (manifest), NULL)) { g_printerr ("Export failed: %s\n", error->message); return 1; } /* Export regular locale extensions */ dir_enum = g_file_enumerate_children (app_dir, "standard::name,standard::type", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, NULL); while (dir_enum != NULL && (next = g_file_enumerator_next_file (dir_enum, NULL, NULL))) { g_autoptr(GFileInfo) child_info = next; const char *name = g_file_info_get_name (child_info); g_autofree char *metadata_arg = NULL; g_autofree char *files_arg = NULL; g_autofree char *locale_id = builder_manifest_get_locale_id (manifest); if (strcmp (name, "metadata.locale") == 0) g_print ("Exporting %s to repo\n", locale_id); else continue; metadata_arg = g_strdup_printf ("--metadata=%s", name); files_arg = g_strconcat (builder_context_get_build_runtime (build_context) ? "--files=usr" : "--files=files", "/share/runtime/locale/", NULL); if (!do_export (build_context, &error, TRUE, metadata_arg, files_arg, opt_repo, app_dir_path, builder_manifest_get_branch (manifest), NULL)) { g_printerr ("Export failed: %s\n", error->message); return 1; } } /* Export debug extensions */ debuginfo_metadata = g_file_get_child (app_dir, "metadata.debuginfo"); if (g_file_query_exists (debuginfo_metadata, NULL)) { g_autofree char *debug_id = builder_manifest_get_debug_id (manifest); g_print ("Exporting %s to repo\n", debug_id); if (!do_export (build_context, &error, TRUE, "--metadata=metadata.debuginfo", builder_context_get_build_runtime (build_context) ? "--files=usr/lib/debug" : "--files=files/lib/debug", opt_repo, app_dir_path, builder_manifest_get_branch (manifest), NULL)) { g_printerr ("Export failed: %s\n", error->message); return 1; } } /* Export platform */ platform_id = builder_manifest_get_id_platform (manifest); if (builder_context_get_build_runtime (build_context) && platform_id != NULL) { g_print ("Exporting %s to repo\n", platform_id); if (!do_export (build_context, &error, TRUE, "--metadata=metadata.platform", "--files=platform", builder_context_get_separate_locales (build_context) ? "--exclude=/share/runtime/locale/*/*" : skip_arg, opt_repo, app_dir_path, builder_manifest_get_branch (manifest), NULL)) { g_printerr ("Export failed: %s\n", error->message); return 1; } } /* Export platform locales */ dir_enum2 = g_file_enumerate_children (app_dir, "standard::name,standard::type", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, NULL); while (dir_enum2 != NULL && (next = g_file_enumerator_next_file (dir_enum2, NULL, NULL))) { g_autoptr(GFileInfo) child_info = next; const char *name = g_file_info_get_name (child_info); g_autofree char *metadata_arg = NULL; g_autofree char *files_arg = NULL; g_autofree char *locale_id = builder_manifest_get_locale_id_platform (manifest); if (strcmp (name, "metadata.platform.locale") == 0) g_print ("Exporting %s to repo\n", locale_id); else continue; metadata_arg = g_strdup_printf ("--metadata=%s", name); files_arg = g_strconcat ("--files=platform/share/runtime/locale/", NULL); if (!do_export (build_context, &error, TRUE, metadata_arg, files_arg, opt_repo, app_dir_path, builder_manifest_get_branch (manifest), NULL)) { g_printerr ("Export failed: %s\n", error->message); return 1; } } } if (!builder_gc (cache, &error)) { g_warning ("Failed to GC build cache: %s\n", error->message); g_clear_error (&error); } return 0; }
int main(int argc, char *argv[]) { int opt = 0, opt_prev = 0; int show_help = 0; int result = 0, delete_after_dump = 0, recursive = 0; char *user=NULL, *mailbox=NULL, *outfile=NULL, *basedir=NULL, *search=NULL; openlog(PNAME, LOG_PID, LOG_MAIL); setvbuf(stdout, 0, _IONBF, 0); g_mime_init(0); /* get options */ opterr = 0; /* suppress error message from getopt() */ while ((opt = getopt(argc, argv, "-u:m:o:b:s:dDr" /* Major modes */ "f:qvVh" /* Common options */ )) != -1) { /* The initial "-" of optstring allows unaccompanied * options and reports them as the optarg to opt 1 (not '1') */ if (opt == 1) opt = opt_prev; opt_prev = opt; switch (opt) { /* export specific options */ case 'u': if (optarg && strlen(optarg)) user = optarg; break; case 'm': if (optarg && strlen(optarg)) mailbox = optarg; break; case 'b': if (optarg && strlen(optarg)) basedir = optarg; break; case 'o': if (optarg && strlen(optarg)) outfile = optarg; break; case 'd': delete_after_dump |= 1; break; case 'D': delete_after_dump |= 2; break; case 'r': recursive = 1; break; case 's': if (optarg && strlen(optarg)) search = optarg; else { qerrorf("dbmail-mailbox: -s requires a value\n\n"); result = 1; } break; /* Common options */ case 'f': if (optarg && strlen(optarg) > 0) configFile = optarg; else { qerrorf("dbmail-mailbox: -f requires a filename\n\n"); result = 1; } break; case 'h': show_help = 1; break; case 'q': /* If we get q twice, be really quiet! */ if (quiet) reallyquiet = 1; if (!verbose) quiet = 1; break; case 'v': if (!quiet) verbose = 1; break; case 'V': /* Show the version and return non-zero. */ PRINTF_THIS_IS_DBMAIL; result = 1; break; default: /* printf("unrecognized option [%c], continuing...\n",optopt); */ break; } /* If there's a non-negative return code, * it's time to free memory and bail out. */ if (result) goto freeall; } /* If nothing is happening, show the help text. */ if (!user || (basedir && outfile) || show_help) { do_showhelp(); result = 1; goto freeall; } /* read the config file */ if (config_read(configFile) == -1) { qerrorf("Failed. Unable to read config file %s\n", configFile); result = -1; goto freeall; } SetTraceLevel("DBMAIL"); GetDBParams(); /* open database connection */ if (db_connect() != 0) { qerrorf ("Failed. Could not connect to database (check log)\n"); result = -1; goto freeall; } /* open authentication connection */ if (auth_connect() != 0) { qerrorf("Failed. Could not connect to authentication (check log)\n"); result = -1; goto freeall; } /* Loop over all user accounts if there's a wildcard. */ if (strchr(user, '?') || strchr(user, '*')) { GList *all_users = auth_get_known_users(); GList *matching_users = match_glob_list(user, all_users); GList *users = g_list_first(matching_users); if (!users) { qerrorf("Error: no users matching [%s] were found.\n", user); g_list_destroy(all_users); result = -1; goto freeall; } while (users) { result = do_export(users->data, mailbox, basedir, outfile, search, delete_after_dump, recursive); if (!g_list_next(users)) break; users = g_list_next(users); } g_list_destroy(all_users); g_list_destroy(matching_users); } else { /* No globbing, just run with this one user. */ result = do_export(user, mailbox, basedir, outfile, search, delete_after_dump, recursive); } /* Here's where we free memory and quit. * Be sure that all of these are NULL safe! */ freeall: db_disconnect(); auth_disconnect(); config_free(); g_mime_shutdown(); if (result < 0) qerrorf("Command failed.\n"); return result; }