refs: Add argument --list to print the full ref name
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
3e3621b7b6
commit
6d73a620e1
|
|
@ -65,6 +65,16 @@ Boston, MA 02111-1307, USA.
|
|||
<title>Options</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>--list</option></term>
|
||||
|
||||
<listitem><para> For historical reasons, <literal>refs</literal>
|
||||
without this option will strip the specified prefix
|
||||
from the output. Normally, one wants to see the full
|
||||
ref, so providing this option ensures the refs are
|
||||
printed in full, rather than
|
||||
truncated. </para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--delete</option></term>
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,11 @@
|
|||
#include "ostree.h"
|
||||
|
||||
static gboolean opt_delete;
|
||||
static gboolean opt_list;
|
||||
|
||||
static GOptionEntry options[] = {
|
||||
{ "delete", 0, 0, G_OPTION_ARG_NONE, &opt_delete, "Delete refs which match PREFIX, rather than listing them", NULL },
|
||||
{ "list", 0, 0, G_OPTION_ARG_NONE, &opt_list, "Do not remove the prefix from the refs", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
@ -40,11 +42,17 @@ static gboolean do_ref (OstreeRepo *repo, const char *refspec_prefix, GCancellab
|
|||
gpointer hashkey, hashvalue;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
if (opt_delete || opt_list)
|
||||
{
|
||||
if (!ostree_repo_list_refs_ext (repo, refspec_prefix, &refs, OSTREE_REPO_LIST_REFS_EXT_NONE,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
else if (!ostree_repo_list_refs (repo, refspec_prefix, &refs, cancellable, error))
|
||||
goto out;
|
||||
|
||||
if (!opt_delete)
|
||||
{
|
||||
if (!ostree_repo_list_refs (repo, refspec_prefix, &refs, cancellable, error))
|
||||
goto out;
|
||||
|
||||
g_hash_table_iter_init (&hashiter, refs);
|
||||
while (g_hash_table_iter_next (&hashiter, &hashkey, &hashvalue))
|
||||
{
|
||||
|
|
@ -54,10 +62,6 @@ static gboolean do_ref (OstreeRepo *repo, const char *refspec_prefix, GCancellab
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!ostree_repo_list_refs_ext (repo, refspec_prefix, &refs, OSTREE_REPO_LIST_REFS_EXT_NONE,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
|
||||
g_hash_table_iter_init (&hashiter, refs);
|
||||
while (g_hash_table_iter_next (&hashiter, &hashkey, &hashvalue))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -45,6 +45,9 @@ assert_file_has_content refscount "^10$"
|
|||
${CMD_PREFIX} ostree --repo=repo refs foo > refs
|
||||
assert_not_file_has_content refs foo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo refs --list foo > refs
|
||||
assert_file_has_content refs foo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo refs foo | wc -l > refscount.foo
|
||||
assert_file_has_content refscount.foo "^5$"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue