prepare all tools and scripts for command line switches
#include "repo_patchxml.h"
#include "common_write.h"
#include "repo_patchxml.h"
#include "common_write.h"
+static void
+usage(const char *err)
+{
+ if (err)
+ fprintf(stderr, "\n** Error:\n %s\n", err);
+ fprintf(stderr, "\nUsage:\n"
+ "patchxml2solv [-a][-h][-k][-n <attrname>]\n"
+ " reads a 'patchxml' file from <stdin> and writes a .solv file to <stdout>\n"
+ " -h : print help & exit\n"
+ " -k : don't mix kinds (experimental!)\n"
+ " -n <name>: save attributes as <name>.attr\n"
+ );
+ exit(0);
+}
+
int
main(int argc, char **argv)
{
int
main(int argc, char **argv)
{
+ int flags = 0;
+ char *attrname = 0;
+
Pool *pool = pool_create();
Repo *repo = repo_create(pool, "<stdin>");
Pool *pool = pool_create();
Repo *repo = repo_create(pool, "<stdin>");
- repo_add_patchxml(repo, stdin);
+
+ argv++;
+ argc--;
+ while (argc--)
+ {
+ const char *s = argv[0];
+ if (*s++ == '-')
+ while (*s)
+ switch (*s++)
+ {
+ case 'h': usage(NULL); break;
+ case 'n':
+ if (argc)
+ {
+ attrname = argv[1];
+ argv++;
+ argc--;
+ }
+ else
+ usage("argument required for '-n'");
+ break;
+ case 'k':
+ flags |= PATCHXML_KINDS_SEPARATELY;
+ break;
+ default : break;
+ }
+ argv++;
+ }
+
+ repo_add_patchxml(repo, stdin, flags);
tool_write(repo, 0, 0);
pool_free(pool);
exit(0);
tool_write(repo, 0, 0);
pool_free(pool);
exit(0);
if test -n "$cmd"; then
# we have some primary.xml*
primfile=`mktemp` || exit 3
if test -n "$cmd"; then
# we have some primary.xml*
primfile=`mktemp` || exit 3
- $cmd $i | rpmmd2solv > $primfile
+ $cmd $i | rpmmd2solv $(PARSER_OPTIONS) > $primfile
esac
done
echo '</patches>'
esac
done
echo '</patches>'
- ) | grep -v '\?xml' | patchxml2solv > $patchfile
+ ) | grep -v '\?xml' | patchxml2solv $(PARSER_OPTIONS) > $patchfile
fi
# Now merge primary and patches
fi
# Now merge primary and patches
- ) | susetags2solv -c "${olddir}/content"
+ ) | susetags2solv -c "${olddir}/content" $(PARSER_OPTIONS)
#define BUFF_SIZE 8192
void
#define BUFF_SIZE 8192
void
-repo_add_patchxml(Repo *repo, FILE *fp)
+repo_add_patchxml(Repo *repo, FILE *fp, int flags)
{
Pool *pool = repo->pool;
struct parsedata pd;
{
Pool *pool = repo->pool;
struct parsedata pd;
* for further information
*/
* for further information
*/
-extern void repo_add_patchxml(Repo *repo, FILE *fp);
+#define PATCHXML_KINDS_SEPARATELY 1
+
+extern void repo_add_patchxml(Repo *repo, FILE *fp, int flags);
#define BUFF_SIZE 8192
void
#define BUFF_SIZE 8192
void
-repo_add_rpmmd(Repo *repo, FILE *fp)
+repo_add_rpmmd(Repo *repo, FILE *fp, int flags)
{
Pool *pool = repo->pool;
struct parsedata pd;
{
Pool *pool = repo->pool;
struct parsedata pd;
* for further information
*/
* for further information
*/
-extern void repo_add_rpmmd(Repo *repo, FILE *fp);
+#define RPMMD_KINDS_SEPARATELY 1
+
+extern void repo_add_rpmmd(Repo *repo, FILE *fp, int flags);
#include "repo_rpmmd.h"
#include "common_write.h"
#include "repo_rpmmd.h"
#include "common_write.h"
+static void
+usage(const char *err)
+{
+ if (err)
+ fprintf(stderr, "\n** Error:\n %s\n", err);
+ fprintf(stderr, "\nUsage:\n"
+ "rpmmd2solv [-a][-h][-k][-n <attrname>]\n"
+ " reads a 'rpmmd' repository from <stdin> and writes a .solv file to <stdout>\n"
+ " -h : print help & exit\n"
+ " -k : don't mix kinds (experimental!)\n"
+ " -n <name>: save attributes as <name>.attr\n"
+ );
+ exit(0);
+}
+
+
int
main(int argc, char **argv)
{
int
main(int argc, char **argv)
{
+ int flags = 0;
+ char *attrname = 0;
+
Pool *pool = pool_create();
Repo *repo = repo_create(pool, "<stdin>");
Pool *pool = pool_create();
Repo *repo = repo_create(pool, "<stdin>");
- repo_add_rpmmd(repo, stdin);
+
+ argv++;
+ argc--;
+ while (argc--)
+ {
+ const char *s = argv[0];
+ if (*s++ == '-')
+ while (*s)
+ switch (*s++)
+ {
+ case 'h': usage(NULL); break;
+ case 'n':
+ if (argc)
+ {
+ attrname = argv[1];
+ argv++;
+ argc--;
+ }
+ else
+ usage("argument required for '-n'");
+ break;
+ case 'k':
+ flags |= RPMMD_KINDS_SEPARATELY;
+ break;
+ default : break;
+ }
+ argv++;
+ }
+ repo_add_rpmmd(repo, stdin, flags);
tool_write(repo, 0, 0);
pool_free(pool);
exit(0);
tool_write(repo, 0, 0);
pool_free(pool);
exit(0);