/*
* rpm2html.c : Application to generate an HTML view of an ensemble
* of RPM packages.
*
* Copyright (c) 1997 Daniel Veillard <veillard@apocalypse.org>
* See COPYING for the status of this software.
*
* $Id: rpm2html.c,v 1.21 1998/03/20 06:03:34 veillard Exp $
*/
#include <config.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <time.h>
#include <ctype.h>
#include <errno.h>
#include <rpm/rpmlib.h>
#include "rpm2html.h"
#include "rpmdata.h"
#include "html.h"
#include "language.h"
int verbose = 1;
int force = 0;
int main(int argc, char *argv[]) {
rpmDataPtr list = NULL;
int i;
time_t start_time;
int nb_config_files = 0;
char host[200];
int mask;
start_time = time(NULL);
gethostname(host, sizeof(host));
rpm2html_rpm2html_thishost = &host[0];
rpmReadConfigFiles(NULL, NULL, NULL, 0); /* rcfile, arch, os !!!! */
/*
* Ensure that all files and directories created a world readable !
*/
mask = umask(022);
for (i = 1; i < argc ; i++) {
if (!strcmp(argv[i], "-lang")) {
i++;
if (i >= argc) break;
readLanguageFile(argv[i]);
} else if (!strcmp(argv[i], "-dumplang")) {
i++;
if (i >= argc) break;
writeLanguageFile(argv[i]);
return(0);
} else if (!strcmp(argv[i], "-force")) {
force++;
} else if (!strcmp(argv[i], "-v")) {
verbose++;
} else if (!strcmp(argv[i], "-q")) {
verbose = 0;
} else {
if (readConfigFile(argv[i]) >= 0) {
dumpDirIcon();
/*
* A config file has been found and parsed.
* Scan the directories, dump the results
* and reinitialize.
*/
nb_config_files++;
list = rpmDirScanAll();
if (rpm2html_files != 0) {
dumpAllRessHtml(0);
list = rpmDistribSort(list, 0);
dumpRpmByDistribs(list, 0);
list = rpmGroupSort(list, 0);
dumpRpmByGroups(list, 0);
list = rpmVendorSort(list, 0);
dumpRpmByVendors(list, 0);
list = rpmDateSort(list, 0);
dumpRpmByDate(list, 0);
list = rpmNameSort(list, 0);
dumpRpmByName(list, 0);
dumpIndex(start_time, 0);
}
if (rpm2html_install_files != 0) {
dumpAllRessHtml(1);
list = rpmDistribSort(list, 1);
dumpRpmByDistribs(list, 1);
list = rpmGroupSort(list, 1);
dumpRpmByGroups(list, 1);
list = rpmVendorSort(list, 1);
dumpRpmByVendors(list, 1);
list = rpmDateSort(list, 1);
dumpRpmByDate(list, 1);
list = rpmNameSort(list, 1);
dumpRpmByName(list, 1);
dumpIndex(start_time, 1);
}
reinitialize();
}
}
}
/*
* reset the umask
*/
umask(mask);
if (nb_config_files == 0) {
fprintf(stderr, "%s %s : Web page generator for RPM packages\n",
RPM2HTML_NAME, RPM2HTML_VER);
fprintf(stderr, "usage : %s [-q/-v] [-force] [-lang msgfile] configfile1 [configfile2 ...]\n", argv[0]);
fprintf(stderr, " %s [-dumplang msgfile]\n", argv[0]);
exit(0);
}
return(0);
}
Webmaster