Index: /trunk/glueforge/glueforge.in
===================================================================
--- /trunk/glueforge/glueforge.in	(revision 5961)
+++ /trunk/glueforge/glueforge.in	(revision 5962)
@@ -3,5 +3,5 @@
 # Copyright (C) 2005  Joshua Hoblitt
 #
-# $Id: glueforge.in,v 1.40 2006-01-10 22:49:37 jhoblitt Exp $
+# $Id: glueforge.in,v 1.41 2006-01-11 02:06:24 jhoblitt Exp $
 
 use strict;
@@ -225,10 +225,25 @@
     die "missing glueforge METADATA" unless defined $glueforge_meta;
 
+    # global data
+
+    # process glueforge metadata for global data
+    my ($pkg_name, $pkg_namespace);
+    foreach my $item (@{$glueforge_meta->{value}}) {
+        if ($item->{name} eq 'pkg_name') {
+            $pkg_name = $item->{value};
+        } elsif ($item->{name} eq 'pkg_namespace') {
+            $pkg_namespace = $item->{value};
+        } else {
+            die "invalid glueforge METADATA key: $item->{name}";
+        }
+    }
+
+    die "pkg_name is required in complex config" unless defined $pkg_name;
+    die "pkg_namespace is required in complex config" unless defined
+        $pkg_namespace;
+
     my %data;
-
-    # global data
-    my $pkg_name = $glueforge_meta->{value}->[0]->{value};
-    $data{pkg_name}         = $pkg_name . "db";
-    $data{pkg_namespace}    = $pkg_name;
+    $data{pkg_name}         = $pkg_name;
+    $data{pkg_namespace}    = $pkg_namespace;
 
     # setup one table per nested metadata
