mirror of
https://github.com/ostreedev/ostree.git
synced 2024-12-21 13:34:34 +03:00
bin/remote-refs: Add option to print revisions
The only other way to get the remote ref revision from the CLI is to scrape the output of `ostree remote summary` or pull the commit. The revision is already there in the summary's ref map, so might as well add an option to show it.
This commit is contained in:
parent
90dd45fb27
commit
008c5a9540
@ -68,6 +68,7 @@ _installed_or_uninstalled_test_scripts = \
|
|||||||
tests/test-archivez.sh \
|
tests/test-archivez.sh \
|
||||||
tests/test-remote-add.sh \
|
tests/test-remote-add.sh \
|
||||||
tests/test-remote-headers.sh \
|
tests/test-remote-headers.sh \
|
||||||
|
tests/test-remote-refs.sh \
|
||||||
tests/test-commit-sign.sh \
|
tests/test-commit-sign.sh \
|
||||||
tests/test-commit-timestamp.sh \
|
tests/test-commit-timestamp.sh \
|
||||||
tests/test-export.sh \
|
tests/test-export.sh \
|
||||||
|
@ -1275,6 +1275,7 @@ _ostree_remote_list_gpg_keys() {
|
|||||||
_ostree_remote_refs() {
|
_ostree_remote_refs() {
|
||||||
local boolean_options="
|
local boolean_options="
|
||||||
$main_boolean_options
|
$main_boolean_options
|
||||||
|
--revision -r
|
||||||
"
|
"
|
||||||
|
|
||||||
local options_with_args="
|
local options_with_args="
|
||||||
|
@ -197,6 +197,17 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>'Refs' Options</title>
|
<title>'Refs' Options</title>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--revision</option>, <option>-r</option></term>
|
||||||
|
|
||||||
|
<listitem><para>
|
||||||
|
Also print the revisions for each ref. The revisions will
|
||||||
|
be separated by a tab character.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--cache-dir</option>=DIR</term>
|
<term><option>--cache-dir</option>=DIR</term>
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "ot-main.h"
|
#include "ot-main.h"
|
||||||
#include "ot-remote-builtins.h"
|
#include "ot-remote-builtins.h"
|
||||||
|
|
||||||
|
static gboolean opt_revision;
|
||||||
static char* opt_cache_dir;
|
static char* opt_cache_dir;
|
||||||
|
|
||||||
/* ATTENTION:
|
/* ATTENTION:
|
||||||
@ -32,6 +33,7 @@ static char* opt_cache_dir;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static GOptionEntry option_entries[] = {
|
static GOptionEntry option_entries[] = {
|
||||||
|
{ "revision", 'r', 0, G_OPTION_ARG_NONE, &opt_revision, "Show revisions in listing", NULL },
|
||||||
{ "cache-dir", 0, 0, G_OPTION_ARG_FILENAME, &opt_cache_dir, "Use custom cache dir", NULL },
|
{ "cache-dir", 0, 0, G_OPTION_ARG_FILENAME, &opt_cache_dir, "Use custom cache dir", NULL },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
@ -73,7 +75,17 @@ ot_remote_builtin_refs (int argc, char **argv, OstreeCommandInvocation *invocati
|
|||||||
|
|
||||||
for (iter = ordered_keys; iter; iter = iter->next)
|
for (iter = ordered_keys; iter; iter = iter->next)
|
||||||
{
|
{
|
||||||
g_print ("%s:%s\n", remote_name, (const char *) iter->data);
|
const char *ref = iter->data;
|
||||||
|
|
||||||
|
if (opt_revision)
|
||||||
|
{
|
||||||
|
const char *rev = g_hash_table_lookup (refs, ref);
|
||||||
|
g_print ("%s:%s\t%s\n", remote_name, ref, rev);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_print ("%s:%s\n", remote_name, ref);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
49
tests/test-remote-refs.sh
Executable file
49
tests/test-remote-refs.sh
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright © 2023 Endless OS Foundation LLC
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: LGPL-2.0+
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2 of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# - Dan Nicholson <dbn@endlessos.org>
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
. $(dirname $0)/libtest.sh
|
||||||
|
|
||||||
|
echo "1..2"
|
||||||
|
|
||||||
|
setup_fake_remote_repo2 "archive"
|
||||||
|
${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/repo summary -u
|
||||||
|
${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/repo refs > origin-refs
|
||||||
|
${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/repo refs --revision > origin-refs-revs
|
||||||
|
|
||||||
|
cd ${test_tmpdir}
|
||||||
|
rm -rf repo
|
||||||
|
ostree_repo_init repo --mode=archive
|
||||||
|
${OSTREE} remote add --no-sign-verify origin $(cat httpd-address)/ostree/repo
|
||||||
|
|
||||||
|
${OSTREE} remote refs origin > refs
|
||||||
|
sed 's/^/origin:/' origin-refs > expected-refs
|
||||||
|
assert_files_equal refs expected-refs
|
||||||
|
|
||||||
|
echo "ok remote refs listing"
|
||||||
|
|
||||||
|
${OSTREE} remote refs origin --revision > refs-revs
|
||||||
|
sed 's/^/origin:/' origin-refs-revs > expected-refs-revs
|
||||||
|
assert_files_equal refs-revs expected-refs-revs
|
||||||
|
|
||||||
|
echo "ok remote refs revisions"
|
Loading…
Reference in New Issue
Block a user