gboolean flatpak_complete_document_list (FlatpakCompletion *completion) { g_autoptr(GOptionContext) context = NULL; g_autoptr(FlatpakDir) user_dir = NULL; g_autoptr(FlatpakDir) system_dir = NULL; g_autoptr(GError) error = NULL; int i; 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: /* APPID */ flatpak_complete_options (completion, global_entries); flatpak_complete_options (completion, options); flatpak_complete_columns (completion, all_columns); user_dir = flatpak_dir_get_user (); { g_auto(GStrv) refs = flatpak_dir_find_installed_refs (user_dir, NULL, NULL, NULL, FLATPAK_KINDS_APP, FIND_MATCHING_REFS_FLAGS_NONE, &error); if (refs == NULL) flatpak_completion_debug ("find local refs error: %s", error->message); for (i = 0; refs != NULL && refs[i] != NULL; i++) { g_auto(GStrv) parts = flatpak_decompose_ref (refs[i], NULL); if (parts) flatpak_complete_word (completion, "%s ", parts[1]); } } system_dir = flatpak_dir_get_system_default (); { g_auto(GStrv) refs = flatpak_dir_find_installed_refs (system_dir, NULL, NULL, NULL, FLATPAK_KINDS_APP, FIND_MATCHING_REFS_FLAGS_NONE, &error); if (refs == NULL) flatpak_completion_debug ("find local refs error: %s", error->message); for (i = 0; refs != NULL && refs[i] != NULL; i++) { g_auto(GStrv) parts = flatpak_decompose_ref (refs[i], NULL); if (parts) flatpak_complete_word (completion, "%s ", parts[1]); } } break; } return TRUE; }
gboolean flatpak_complete_ps (FlatpakCompletion *completion) { flatpak_complete_options (completion, global_entries); flatpak_complete_options (completion, options); flatpak_complete_columns (completion, all_columns); return TRUE; }