[Midnightbsd-cvs] src: mport.create.c: Add usage and some basic argument checking.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Thu Sep 27 19:09:12 EDT 2007
Log Message:
-----------
Add usage and some basic argument checking.
Modified Files:
--------------
src/libexec/mport.create:
mport.create.c (r1.2 -> r1.3)
-------------- next part --------------
Index: mport.create.c
===================================================================
RCS file: /home/cvs/src/libexec/mport.create/mport.create.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -Llibexec/mport.create/mport.create.c -Llibexec/mport.create/mport.create.c -u -r1.2 -r1.3
--- libexec/mport.create/mport.create.c
+++ libexec/mport.create/mport.create.c
@@ -43,12 +43,14 @@
#define STRING_EQ(s1, s2) (strcmp((s1), (s2)) == 0)
static void usage(void);
+static void check_for_required_args(mportPackageMeta *);
int main(int argc, char *argv[])
{
int ch;
+ int plist_seen = 0;
mportPackageMeta *pack = mport_new_packagemeta();
- mportPlist *plist = mport_new_plist();
+ mportPlist *plist = mport_new_plist();
FILE *fp;
while ((ch = getopt(argc, argv, "o:n:v:c:l:s:d:p:P:D:M:O:C:i:j:m:r:")) != -1) {
@@ -79,10 +81,12 @@
err(1, "%s", optarg);
}
if (mport_parse_plist_file(fp, plist) != 0) {
- fprintf(stderr, "Could not parse plist file '%s'.\n", optarg);
+ warnx("Could not parse plist file '%s'.\n", optarg);
exit(1);
}
+ plist_seen++;
+
break;
case 'P':
pack->prefix = optarg;
@@ -108,29 +112,62 @@
case 'm':
pack->pkgmessage = optarg;
break;
- case 'r':
- pack->req_script = optarg;
- break;
+ case '?':
default:
usage();
break;
}
}
+
+ check_for_required_args(pack);
-
- // XXX Check that we have all the required args.
-
+ if (plist_seen == 0) {
+ warnx("Required arg missing: plist");
+ usage();
+ }
+
if (mport_create_pkg(plist, pack) != MPORT_OK) {
- fprintf(stderr, "mport.create: error: %s\n", mport_err_string());
+ warnx("%s", mport_err_string());
return 1;
}
return 0;
}
+
+
+#define CHECK_ARG(field, errmsg) \
+ if (pack->field == NULL) { \
+ warnx("Required arg missing: %s", #errmsg); \
+ usage(); \
+ }
+static void check_for_required_args(mportPackageMeta *pack)
+{
+ CHECK_ARG(name, "package name")
+ CHECK_ARG(version, "package version");
+ CHECK_ARG(pkg_filename, "package filename");
+ CHECK_ARG(sourcedir, "source dir");
+ CHECK_ARG(prefix, "prefix");
+}
+
static void usage()
{
- fprintf(stderr, "Coming soon: usage!\n");
+ fprintf(stderr, "\nmport.create <options>\n");
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, "\t-n <package name>\n");
+ fprintf(stderr, "\t-v <package version>\n");
+ fprintf(stderr, "\t-o <package filename>\n");
+ fprintf(stderr, "\t-s <source dir (usually the fake destdir)>\n");
+ fprintf(stderr, "\t-p <plist filename>\n");
+ fprintf(stderr, "\t-P <prefix>\n");
+ fprintf(stderr, "\t-c <comment (short description)>\n");
+ fprintf(stderr, "\t-l <package lang>\n");
+ fprintf(stderr, "\t-D <package depends>\n");
+ fprintf(stderr, "\t-C <package conflicts>\n");
+ fprintf(stderr, "\t-d <pkg-descr file>\n");
+ fprintf(stderr, "\t-i <pkg-install script>\n");
+ fprintf(stderr, "\t-j <pkg-deinstall script>\n");
+
exit(1);
}
More information about the Midnightbsd-cvs
mailing list