Initial revision
[platform/upstream/rpm.git] / rpm2cpio.c
1 /* rpmarchive: spit out the main archive portion of a package */
2
3 #include <stdio.h>
4 #include <unistd.h>
5 #include <fcntl.h>
6 #include <zlib.h>
7
8 #include "lib/package.h"
9 #include "rpmlib.h"
10
11 int main(int argc, char **argv)
12 {
13     int fd;
14     Header hd;
15     int rc, isSource;
16     char buffer[1024];
17     int ct;
18     gzFile stream;
19     
20     if (argc == 1) {
21         fd = 0;
22     } else {
23         fd = open(argv[1], O_RDONLY, 0644);
24     }
25
26     if (fd < 0) {
27         perror("cannot open package");
28         exit(1);
29     }
30
31     rc = pkgReadHeader(fd, &hd, &isSource);
32     if (rc == 1) {
33         fprintf(stderr, "argument is not an RPM package\n");
34         exit(1);
35     } else if (rc) {
36         fprintf(stderr, "error reading header from package\n");
37         exit(1);
38     }
39
40     stream = gzdopen(fd, "r");
41
42     while ((ct = gzread(stream, &buffer, 1024))) {
43         write(1, &buffer, ct);
44     }
45     
46     return 0;
47 }