[ostree] main: Support using repo from current directory



commit 187c75eae5412e32aa43b3c566825aee82f5bc1e
Author: Colin Walters <walters verbum org>
Date:   Wed Jul 24 14:05:12 2013 -0400

    main: Support using repo from current directory
    
    $ cd repo
    $ ostree ls foo /
    ...
    
    Can be a lot more convenient than typing --repo=repo a lot.

 src/ostree/ot-main.c |   22 +++++++++++++++-------
 tests/test-basic.sh  |    5 ++++-
 2 files changed, 19 insertions(+), 8 deletions(-)
---
diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c
index 1470860..ff6bd9e 100644
--- a/src/ostree/ot-main.c
+++ b/src/ostree/ot-main.c
@@ -115,9 +115,6 @@ ostree_run (int    argc,
   else if (g_file_test (host_repo_path, G_FILE_TEST_EXISTS))
     repo = host_repo_path;
 
-  if (repo)
-    repo_file = g_file_new_for_path (repo);
-
   if (!have_repo_arg)
     {
       arg_off = 2;
@@ -148,11 +145,22 @@ ostree_run (int    argc,
 
   if (repo == NULL && !(command->flags & OSTREE_BUILTIN_FLAG_NO_REPO))
     {
-      g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                           "Command requires a --repo argument");
-      ostree_usage (argv, commands, TRUE);
-      goto out;
+      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,
+                               "Command requires a --repo argument");
+          ostree_usage (argv, commands, TRUE);
+          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);
 
diff --git a/tests/test-basic.sh b/tests/test-basic.sh
index 57c4035..998c6d9 100755
--- a/tests/test-basic.sh
+++ b/tests/test-basic.sh
@@ -19,7 +19,7 @@
 
 set -e
 
-echo "1..33"
+echo "1..34"
 
 . $(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)
 echo "ok rev-parse"
 
+(cd repo && ostree rev-parse test2)
+echo "ok repo-in-cwd"
+
 $OSTREE refs > reflist
 assert_file_has_content reflist '^test2$'
 rm reflist


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]