gboolean flatpak_complete_install (FlatpakCompletion *completion) { g_autoptr(GOptionContext) context = NULL; g_autoptr(GPtrArray) dirs = NULL; FlatpakDir *dir; FlatpakKinds kinds; int i; context = g_option_context_new (""); if (!flatpak_option_context_parse (context, options, &completion->argc, &completion->argv, FLATPAK_BUILTIN_FLAG_ONE_DIR | FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO, &dirs, NULL, NULL)) return FALSE; dir = g_ptr_array_index (dirs, 0); kinds = flatpak_kinds_from_bools (opt_app, opt_runtime); switch (completion->argc) { case 0: case 1: /* LOCATION/REMOTE */ flatpak_complete_options (completion, global_entries); flatpak_complete_options (completion, options); flatpak_complete_options (completion, user_entries); flatpak_complete_file (completion, "__FLATPAK_BUNDLE_OR_REF_FILE"); { g_auto(GStrv) remotes = flatpak_dir_list_remotes (dir, NULL, NULL); if (remotes != NULL) { for (i = 0; remotes[i] != NULL; i++) flatpak_complete_word (completion, "%s ", remotes[i]); } } break; default: /* REF */ flatpak_complete_partial_ref (completion, kinds, opt_arch, dir, completion->argv[1]); break; } return TRUE; }
gboolean flatpak_complete_document_info (FlatpakCompletion *completion) { g_autoptr(GOptionContext) context = NULL; context = g_option_context_new (""); if (!flatpak_option_context_parse (context, options, &completion->argc, &completion->argv, FLATPAK_BUILTIN_FLAG_NO_DIR, NULL, NULL, NULL)) return FALSE; switch (completion->argc) { case 0: case 1: /* FILE */ flatpak_complete_options (completion, global_entries); flatpak_complete_options (completion, options); flatpak_complete_file (completion); break; } return TRUE; }