Now, one must run "upkg -f foo.u" where previously one would run "upkg
foo.u". This new syntax allows multiple packages to be specified on the
command line for purposes of dependency resolution and (soon) extraction
of specific objects.
The package operated upon is the last one specified in this manner.
int verbose = 0;
static const char *progname = "upkg";
int verbose = 0;
static const char *progname = "upkg";
-static const char *sopts = "ixvVH";
+static const char *sopts = "ixvf:VH";
static const struct option lopts[] = {
{ "info", 0, NULL, 'i' },
{ "export", 0, NULL, 'x' },
static const struct option lopts[] = {
{ "info", 0, NULL, 'i' },
{ "export", 0, NULL, 'x' },
+ { "file", 1, NULL, 'f' },
{ "verbose", 0, NULL, 'v' },
{ "version", 0, NULL, 'V' },
{ "help", 0, NULL, 'H' },
{ "verbose", 0, NULL, 'v' },
{ "version", 0, NULL, 'V' },
{ "help", 0, NULL, 'H' },
void print_usage(FILE *f)
{
void print_usage(FILE *f)
{
- fprintf(f, "Usage: %s [options] package\n", progname);
+ fprintf(f, "Usage: %s [options]\n", progname);
int main(int argc, char **argv)
{
GTypeModule *pkg;
int main(int argc, char **argv)
{
GTypeModule *pkg;
+ const char *pkgname = NULL;
unsigned mode = MODE_INFO;
int opt, rc = EXIT_FAILURE;
if (argc > 0) progname = argv[0];
unsigned mode = MODE_INFO;
int opt, rc = EXIT_FAILURE;
if (argc > 0) progname = argv[0];
+ if (u_pkg_vfs_init() != 0)
+ return EXIT_FAILURE;
+ if (u_object_module_init() != 0)
+ return EXIT_FAILURE;
+
while ((opt = getopt_long(argc, argv, sopts, lopts, NULL)) != -1) {
switch (opt) {
while ((opt = getopt_long(argc, argv, sopts, lopts, NULL)) != -1) {
switch (opt) {
+ case 'f':
+ pkgname = u_pkg_vfs_add_local(NULL, optarg);
+ if (!pkgname) {
+ fprintf(stderr, "failed to add package `%s'.\n", optarg);
+ return EXIT_FAILURE;
+ }
+ break;
case 'i':
mode = MODE_INFO;
break;
case 'i':
mode = MODE_INFO;
break;
- if (argv[optind] == NULL) {
- print_usage(stderr);
- return EXIT_FAILURE;
- }
-
- if (u_pkg_vfs_init() != 0)
- return EXIT_FAILURE;
- if (u_object_module_init() != 0)
- return EXIT_FAILURE;
-
- pkgname = u_pkg_vfs_add_local(NULL, argv[optind]);
- fprintf(stderr, "failed to add package `%s'.\n", argv[optind]);