/* * rpm2html.c : Application to generate an HTML view of an ensemble * of RPM packages. * * Copyright (c) 1997 Daniel Veillard * See COPYING for the status of this software. * * $Id: rpm2html.c,v 1.22 1998/04/09 08:29:28 httpng Exp $ */ #include #include #include #ifdef HAVE_FCNTL_H #include #endif #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include #include #include #include #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_dump_html != 0) { 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); }