adding repos
authorChristian Thaeter <ct@pipapo.org>
Sun, 16 Dec 2007 21:30:26 +0000 (22:30 +0100)
committerChristian Thaeter <ct@pipapo.org>
Sun, 16 Dec 2007 21:30:26 +0000 (22:30 +0100)
src/options.c
src/query.c
src/query.h

index 3b8e147..2ecf0e1 100644 (file)
@@ -48,14 +48,11 @@ conf_method_opt (struct ctgit_query* query, char* arg)
 static int
 conf_repo_opt (struct ctgit_query* query, char* arg)
 {
-  fprintf (stderr, "add repo '%s'\n", arg);
-  return 0;
-}
+  //fprintf (stderr, "add repo '%s'\n", arg);
 
-void
-cgit_options_defaults (struct ctgit_query* query)
-{
-  setenv ("REQUEST_METHOD", "GET", 0);
+  ctgit_query_add_repo (query, arg);
+
+  return 0;
 }
 
 int
index 2e9f29e..376497c 100644 (file)
@@ -65,19 +65,45 @@ ctgit_query_destroy (struct ctgit_query* q)
 
 
 void
-ctgit_query_add_repo (struct ctgit_query* q, char* path)
+ctgit_query_add_repo (struct ctgit_query* q, const char* path)
 {
   if (!path)
     return;
 
+  // TODO check path == git repo
+
   struct ctgit_repo_info* self = cwa_malloc (sizeof(struct ctgit_repo_info));
 
   llist_init (&self->node);
   self->path = cwa_strdup (path);
 
+  char* n;
+  while (n = strrchr(path, '/'))
+    if (n[1])
+      {
+        ++n;
+        break;
+      }
+
+  if (!n)
+    n = path;
+
+  self->name = cwa_strdup (n);       // TODO
+
   self->owner = NULL;
   self->description = NULL;
   self->pull_url = NULL;
+
+  LList p = &q->repos;
+  LLIST_FOREACH (&q->repos, node)
+    {
+      struct ctgit_repo_info* n = (struct ctgit_repo_info*)node;
+      if (strcmp (n->name, self->name) > 0)
+        break;
+      p = node;
+    }
+  llist_insert_next (p, &self->node);
+
 }
 
 
index 4752351..8d4126d 100644 (file)
@@ -44,7 +44,7 @@ struct ctgit_query*
 ctgit_query_destroy (struct ctgit_query* q);
 
 void
-ctgit_query_add_repo (struct ctgit_query* q, char* path);
+ctgit_query_add_repo (struct ctgit_query* q, const char* path);
 
 
 void