]> git.draconx.ca Git - upkg.git/blobdiff - src/upkg.c
upkg: Print package export info.
[upkg.git] / src / upkg.c
index 6da174cf8a5a3a5d9d10536acaa68634c61a82d4..12dc09ea024eec77d3c79ed8a4457090e8db8662 100644 (file)
@@ -107,6 +107,23 @@ void print_guid(unsigned char guid[static 16])
        }
 }
 
+void print_upkg_exports(struct upkg *pkg)
+{
+       for (unsigned i = 0; i < pkg->export_count; i++) {
+               const char *name, *package, *group, *class;
+
+               name  = upkg_export_name(pkg, i);
+               class = upkg_export_class(pkg, i, &package, &group);
+
+               if (!name || !class)
+                       continue;
+
+               printf("%u - %s%s%s (%s.%s)\n", i+1,
+                       group ? group : "", group ? "." : "", name,
+                       package, class);
+       }
+}
+
 int package_info(struct upkg *pkg)
 {
        printf("Version: %u\n",  pkg->version);
@@ -128,13 +145,17 @@ int package_info(struct upkg *pkg)
                }
        }
 
+       printf("Exports: %lu\n", pkg->export_count);
+       if (verbose >= 1) print_upkg_exports(pkg);
+       printf("Imports: %lu\n", pkg->import_count);
+
        return EXIT_SUCCESS;
 }
 
 int main(int argc, char **argv)
 {
        struct upkg *pkg;
-       unsigned mode;
+       unsigned mode = MODE_INFO;
        int opt, rc = EXIT_FAILURE;
 
        if (argc > 0) progname = argv[0];