main: Support using repo from current directory

$ cd repo
$ ostree ls foo /
...

Can be a lot more convenient than typing --repo=repo a lot.
This commit is contained in:
Colin Walters 2013-07-24 14:05:12 -04:00
parent 3de1d6589a
commit 187c75eae5
2 changed files with 19 additions and 8 deletions

View File

@ -115,9 +115,6 @@ ostree_run (int argc,
else if (g_file_test (host_repo_path, G_FILE_TEST_EXISTS)) else if (g_file_test (host_repo_path, G_FILE_TEST_EXISTS))
repo = host_repo_path; repo = host_repo_path;
if (repo)
repo_file = g_file_new_for_path (repo);
if (!have_repo_arg) if (!have_repo_arg)
{ {
arg_off = 2; arg_off = 2;
@ -147,12 +144,23 @@ ostree_run (int argc,
g_set_prgname (g_strdup_printf ("ostree %s", cmd)); g_set_prgname (g_strdup_printf ("ostree %s", cmd));
if (repo == NULL && !(command->flags & OSTREE_BUILTIN_FLAG_NO_REPO)) if (repo == NULL && !(command->flags & OSTREE_BUILTIN_FLAG_NO_REPO))
{
if (g_file_test ("objects", G_FILE_TEST_IS_DIR)
&& g_file_test ("config", G_FILE_TEST_IS_REGULAR))
{
repo = ".";
}
else
{ {
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED, g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Command requires a --repo argument"); "Command requires a --repo argument");
ostree_usage (argv, commands, TRUE); ostree_usage (argv, commands, TRUE);
goto out; goto out;
} }
}
if (repo)
repo_file = g_file_new_for_path (repo);
ostree_prep_builtin_argv (cmd, argc-arg_off, argv+arg_off, &cmd_argc, &cmd_argv); ostree_prep_builtin_argv (cmd, argc-arg_off, argv+arg_off, &cmd_argc, &cmd_argv);

View File

@ -19,7 +19,7 @@
set -e set -e
echo "1..33" echo "1..34"
. $(dirname $0)/libtest.sh . $(dirname $0)/libtest.sh
@ -34,6 +34,9 @@ $OSTREE rev-parse 'test2^'
$OSTREE rev-parse 'test2^^' 2>/dev/null && (echo 1>&2 "rev-parse test2^^ unexpectedly succeeded!"; exit 1) $OSTREE rev-parse 'test2^^' 2>/dev/null && (echo 1>&2 "rev-parse test2^^ unexpectedly succeeded!"; exit 1)
echo "ok rev-parse" echo "ok rev-parse"
(cd repo && ostree rev-parse test2)
echo "ok repo-in-cwd"
$OSTREE refs > reflist $OSTREE refs > reflist
assert_file_has_content reflist '^test2$' assert_file_has_content reflist '^test2$'
rm reflist rm reflist