summaryrefslogtreecommitdiff
path: root/rpm2archive.c
diff options
context:
space:
mode:
Diffstat (limited to 'rpm2archive.c')
-rw-r--r--rpm2archive.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/rpm2archive.c b/rpm2archive.c
index 3b1a56559..d0d1e6649 100644
--- a/rpm2archive.c
+++ b/rpm2archive.c
@@ -187,22 +187,19 @@ static int process_package(rpmts ts, char * filename)
int main(int argc, char *argv[])
{
- int rc;
-
+ int rc, i;
+
xsetprogname(argv[0]); /* Portability call -- see system.h */
rpmReadConfigFiles(NULL, NULL);
- char * filename;
- if (argc == 1)
- filename = "-";
- else {
- if (rstreq(argv[1], "-h") || rstreq(argv[1], "--help")) {
- fprintf(stderr, "Usage: rpm2archive file.rpm\n");
- exit(EXIT_FAILURE);
- } else {
- filename = argv[1];
- }
+
+ if (argc > 1 && (rstreq(argv[1], "-h") || rstreq(argv[1], "--help"))) {
+ fprintf(stderr, "Usage: %s [file.rpm ...]\n", argv[0]);
+ exit(EXIT_FAILURE);
}
+ if (argc == 1)
+ argv[argc++] = "-"; /* abuse NULL pointer at the end of argv */
+
rpmts ts = rpmtsCreate();
rpmVSFlags vsflags = 0;
@@ -212,9 +209,13 @@ int main(int argc, char *argv[])
vsflags |= RPMVSF_NOHDRCHK;
(void) rpmtsSetVSFlags(ts, vsflags);
- rc = process_package(ts, filename);
+ for (i = 1; i < argc; i++) {
- ts = rpmtsFree(ts);
+ rc = process_package(ts, argv[i]);
+ if (rc != 0)
+ return rc;
+ }
+ (void) rpmtsFree(ts);
return rc;
}