Add %_i18ndomains configuration.
[tools/librpm-tizen.git] / rpm2cpio.c
1 /* rpmarchive: spit out the main archive portion of a package */
2
3 #include "system.h"
4
5 #include "rpmlib.h"
6
7 int main(int argc, char **argv)
8 {
9     FD_t fdi, fdo;
10     Header h;
11     int rc, isSource;
12     FD_t gzdi;
13     
14     setprogname(argv[0]);       /* Retrofit glibc __progname */
15     if (argc == 1) {
16         fdi = fdDup(STDIN_FILENO);
17     } else {
18         fdi = Fopen(argv[1], "r.ufdio");
19     }
20
21     if (fdi == NULL || Ferror(fdi)) {
22         fprintf(stderr, _("cannot open package: %s\n"), Fstrerror(fdi));
23         exit(EXIT_FAILURE);
24     }
25     fdo = fdDup(STDOUT_FILENO);
26
27     rc = rpmReadPackageHeader(fdi, &h, &isSource, NULL, NULL);
28     switch (rc) {
29     case 0:
30         break;
31     case 1:
32         fprintf(stderr, _("argument is not an RPM package\n"));
33         exit(EXIT_FAILURE);
34         break;
35     default:
36         fprintf(stderr, _("error reading header from package\n"));
37         exit(EXIT_FAILURE);
38         break;
39     }
40
41     gzdi = Fdopen(fdi, "r.gzdio");      /* XXX gzdi == fdi */
42     if (gzdi == NULL || Ferror(gzdi)) {
43         fprintf(stderr, _("cannot re-open payload: %s\n"), Fstrerror(gzdi));
44         exit(EXIT_FAILURE);
45     }
46
47 #ifdef  DYING
48   { char buffer[BUFSIZ];
49     int ct;
50     while ((ct = Fread(buffer, sizeof(buffer[0]), sizeof(buffer), gzdi)) > 0) {
51         Fwrite(buffer, sizeof(buffer[0]), ct, fdo);
52     }
53
54     if (ct < 0) {
55         fprintf (stderr, "rpm2cpio: zlib: %s\n", Fstrerror(gzdi));
56         rc = EXIT_FAILURE;
57     } else {
58         rc = EXIT_SUCCESS;
59     }
60   }
61 #else
62     rc = ufdCopy(gzdi, fdo);
63     rc = (rc <= 0) ? EXIT_FAILURE : EXIT_SUCCESS;
64     Fclose(fdo);
65 #endif
66
67     Fclose(gzdi);       /* XXX gzdi == fdi */
68
69     return rc;
70 }