home *** CD-ROM | disk | FTP | other *** search
/ Clip-Art Cornucopeia / Clip-Art_Cornucopeia_CD-ROM_February_1994.iso / pc / _bbs / maxtool / max.c < prev    next >
C/C++ Source or Header  |  1993-08-31  |  4KB  |  154 lines

  1. /*
  2.   
  3.     Maximus CDROM Mount :
  4.   
  5.     Creates FILES.BBS files and CDAREAS.CTL from indexfile on 
  6.     CD-ROM from Walnut Creek CD-ROM.
  7.   
  8.     Usage :
  9.   
  10.     MAX <CD-ROMdrive> <Directory for FILES.BBS files> [starting area]
  11.   
  12.     Example :
  13.   
  14.     MAX G: C:\MAX\CDAREAS
  15.     MAX G: C:\MAX\CDAREAS 100
  16.   
  17. */
  18.  
  19.  
  20. #include <ctype.h>
  21. #include <stdio.h>
  22. #include <stdlib.h>
  23. #include <string.h>
  24.  
  25. void 
  26. main(int argc, char **argv) {
  27.     FILE *dosindex;
  28.     FILE *areasfile;
  29.     FILE *filesbbsfile = NULL;
  30.  
  31.     char name[255];
  32.  
  33.     char indexfname[80];
  34.     char filesbbsname[80];
  35.     char dirname[80];
  36.     char areadesc[80];
  37.     char areaname[15];
  38.  
  39.     char buf[512];
  40.     char tmps[512];
  41.  
  42.     long totdirs = 0;
  43.  
  44.     char *p, *r;
  45.  
  46.     printf("╔═════════════════════════════════════════════════════════════════╕\n");
  47.     printf("║                                                                 │\n");
  48.     printf("║                   ««« Maximus CDROM Mount »»»                  │\n");
  49.     printf("║                                                                 │\n");
  50.     printf("║ Creates Files.Bbs files and Hcdareas.Ctl from indexfiles on the │\n");
  51.     printf("║ CD-ROM from Walnut Creek CD-ROM.                                │\n");
  52.     printf("║                                                                 │\n");
  53.     printf("║ (C) Copyright 1993 Koos van den Hout /                          │\n");
  54.     printf("║                            Van den Hout Creative Communications │\n");
  55.     printf("║ (C) copy right 1993 Walnut Creek CDROM                          │\n");
  56.     printf("║ This program is Freeware. Feel free to share the executable /   │\n");
  57.     printf("║ source with anyone. Read MaxHmnt.Doc for license.               │\n");
  58.     printf("║                                                                 │\n");
  59.     printf("╙─────────────────────────────────────────────────────────────────┘\n\n");
  60.  
  61.     if (argc < 3) {
  62.         printf("Usage :\n\n");
  63.         printf("MAX <CD-ROMdrive> <Directory for FILES.BBS files> [starting area number]\n\n");
  64.         printf("Example:\n");
  65.         printf("MAX G: C:\\MAX\\CDAREAS\n");
  66.         printf("MAX G: C:\\MAX\\CDAREAS 100\n\n");
  67.         printf("Read MAXHMNT.DOC for more info.\n");
  68.         exit(1);
  69.     }
  70.     strupr(argv[1]);
  71.     strupr(argv[2]);
  72.  
  73.     if (argc == 4) {
  74.         if (0 == (totdirs = atoi(argv[3]))) {
  75.             fprintf(stderr, "''%s'' is not a starting area number\n", argv[3]);
  76.             exit(1);
  77.         }
  78.         --totdirs;
  79.     }
  80.  
  81.     strcpy(indexfname, argv[1]);
  82.     strcat(indexfname, "\\_bbs\\dirs.txt");
  83.  
  84.     if ((dosindex = fopen(indexfname, "rt")) == NULL) {
  85.         printf("Can't open index file %s\n", indexfname);
  86.         exit(1);
  87.     }
  88.     if ((areasfile = fopen("HCDAREAS.CTL", "wt")) == NULL) {
  89.         printf("Can't write area file\n");
  90.         exit(1);
  91.     }
  92.     
  93.     fprintf(areasfile, "% Areas file of Walnut Creek CDROM.\n");
  94.     fprintf(areasfile, "% Created by Max\n\n");
  95.     while (NULL != fgets(buf, 512, dosindex)) {
  96.  
  97.         buf[strlen(buf) - 1] = 0;
  98.  
  99.         if (0 == strlen(buf))
  100.             continue;
  101.         
  102.         if (0 == strncmp(buf, "---", 3))
  103.             break;
  104.  
  105.         p = strchr(buf, ' ');
  106.         r = strchr(buf, '\t');
  107.         if (r && r < p)
  108.             p = r;
  109.         *p = 0;
  110.         strcpy(dirname, buf);
  111.         *p = ' ';
  112.         while (isspace(*p))
  113.             ++p;
  114.  
  115.         /* p now at description */
  116.                 
  117.         ++totdirs;
  118.  
  119.         strcpy(areadesc, p);
  120.  
  121.         sprintf(areaname, "HC%03li", totdirs);
  122.         strupr(areaname);
  123.  
  124.         printf("[%03li] %s%s >> %s\n",
  125.                   totdirs, argv[1], dirname, areadesc);
  126.  
  127.         strcpy(filesbbsname, argv[2]);
  128.  
  129.         if (filesbbsname[strlen(filesbbsname) - 1] != '\\')
  130.             strcat(filesbbsname, "\\");
  131.         
  132.         sprintf(tmps, "HC%03li.BBS", totdirs);
  133.         strcat(filesbbsname, tmps);
  134.  
  135.         sprintf(buf, "copy %s%s\\files.bbs %s", argv[1], dirname, filesbbsname);
  136.  
  137.         fprintf(stderr, "executing ``copy %s\\files.bbs %s''\n",
  138.                   dirname, filesbbsname);
  139.  
  140.         system(buf);
  141.  
  142.         fprintf(areasfile, "Area %s\n", areaname);
  143.         fprintf(areasfile, "        Access           Disgrace/S\n");
  144.         fprintf(areasfile, "        FileInfo         %s\n", areadesc);
  145.         fprintf(areasfile, "        Download         %s%s\n", argv[1], dirname);
  146.         fprintf(areasfile, "        FileList         %s\n", filesbbsname);
  147.         fprintf(areasfile, "End Area\n\n");
  148.     }
  149.  
  150.     fclose(filesbbsfile);
  151.     fclose(areasfile);
  152.     fclose(dosindex);
  153. }
  154.