#include "pool.h"
#include "repo.h"
#include "repo_rpmmd.h"
+#ifdef SUSE
+#include "repo_autopattern.h"
+#endif
#include "common_write.h"
-#include "sat_xfopen.h"
+#include "solv_xfopen.h"
static void
const char *basefile = 0;
const char *dir = 0;
const char *locale = 0;
+#ifdef SUSE
+ int add_auto = 0;
+#endif
Pool *pool = pool_create();
Repo *repo = repo_create(pool, "<stdin>");
- while ((c = getopt (argc, argv, "hn:b:d:l:")) >= 0)
+ while ((c = getopt (argc, argv, "hn:b:d:l:X")) >= 0)
{
switch(c)
{
case 'l':
locale = optarg;
break;
+ case 'X':
+#ifdef SUSE
+ add_auto = 1;
+#endif
+ break;
default:
usage(1);
break;
int l;
char *fnp;
l = strlen(dir) + 128;
- fnp = sat_malloc(l+1);
+ fnp = solv_malloc(l+1);
snprintf(fnp, l, "%s/primary.xml.gz", dir);
- if (!(fp = sat_xfopen(fnp)))
+ if (!(fp = solv_xfopen(fnp, 0)))
{
perror(fnp);
exit(1);
}
- repo_add_rpmmd(repo, fp, 0, flags);
+ if (repo_add_rpmmd(repo, fp, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool));
+ exit(1);
+ }
fclose(fp);
snprintf(fnp, l, "%s/diskusagedata.xml.gz", dir);
- if ((fp = sat_xfopen(fnp)))
+ if ((fp = solv_xfopen(fnp, 0)))
{
- repo_add_rpmmd(repo, fp, 0, flags);
+ if (repo_add_rpmmd(repo, fp, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool));
+ exit(1);
+ }
fclose(fp);
}
if (locale)
fprintf(stderr, "-l parameter too long\n");
exit(1);
}
- while (!(fp = sat_xfopen(fnp)))
+ while (!(fp = solv_xfopen(fnp, 0)))
{
fprintf(stderr, "not opened %s\n", fnp);
if (strlen(locale) > 2)
fprintf(stderr, "-l parameter too long\n");
exit(1);
}
- if ((fp = sat_xfopen(fnp)))
+ if ((fp = solv_xfopen(fnp, 0)))
break;
}
perror(fnp);
exit(1);
}
fprintf(stderr, "opened %s\n", fnp);
- repo_add_rpmmd(repo, fp, 0, flags);
+ if (repo_add_rpmmd(repo, fp, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool));
+ exit(1);
+ }
fclose(fp);
}
- sat_free(fnp);
+ solv_free(fnp);
}
else
- repo_add_rpmmd(repo, stdin, 0, flags);
+ {
+ if (repo_add_rpmmd(repo, stdin, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s\n", pool_errstr(pool));
+ exit(1);
+ }
+ }
+#ifdef SUSE
+ if (add_auto)
+ repo_add_autopattern(repo, 0);
+#endif
tool_write(repo, basefile, attrname);
pool_free(pool);
exit(0);