webgit_enter_directory() to pick and setup a git repository
authorChristian Thaeter <ct@pipapo.org>
Tue, 8 Jan 2008 03:26:22 +0000 (04:26 +0100)
committerChristian Thaeter <ct@pipapo.org>
Tue, 8 Jan 2008 03:26:22 +0000 (04:26 +0100)
src/actions.c
src/webgit.c
src/webgit.h

index b9aaa0b..92c3de2 100644 (file)
@@ -159,20 +159,10 @@ webgit_diff_action (struct webgit_query* query)
 static Html
 webgit_object_action (struct webgit_query* query)
 {
-  LLIST_FOREACH (&query->repos, node)
-    {
-      struct webgit_repo_info* ri = (struct webgit_repo_info*) node;
-      if (!strcmp (ri->name, query->repo))
-        {
-          chdir (ri->path);
-          break;
-        }
-    }
-
-  setup_git_directory ();
+  webgit_enter_repository (query);
 
   unsigned char sha1[20];
-  if (get_sha1(query->object, sha1))
+  if (get_sha1 (query->object, sha1))
     return html("error: unknown object");
 
   switch (sha1_object_info(sha1, NULL))
index 296954d..deae91f 100644 (file)
@@ -81,6 +81,23 @@ webgit_email_link (Html name, Html email)
 }
 
 
+void
+webgit_enter_repository (struct webgit_query* query)
+{
+  LLIST_FOREACH (&query->repos, node)
+    {
+      struct webgit_repo_info* ri = (struct webgit_repo_info*) node;
+      if (!strcmp (ri->name, query->repo))
+        {
+          if (chdir (ri->path))
+            return die ("error: wrong path %s", ri->path);
+          break;
+        }
+    }
+
+  setup_git_directory ();
+}
+
 
 int
 main (int argc, char**argv)
index 0bb0bdd..15a7edb 100644 (file)
@@ -81,4 +81,7 @@ struct webgit_repo_info
 Html
 webgit_email_link (Html name, Html email);
 
+void
+webgit_enter_repository (struct webgit_query* query);
+
 #endif