home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / UUPC11XT.ZIP / RN / KITLISTS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-21  |  1.5 KB  |  62 lines

  1. /* $Header: E:\SRC\UUPC\RN\RCS/KITLISTS.C 1.1 1992/11/21 06:14:58 ahd Exp $
  2.  *
  3.  * $Log: KITLISTS.C $
  4.  * Revision 1.1  1992/11/21  06:14:58  ahd
  5.  * Initial
  6.  *
  7.  *
  8.  *    Rev 1.0   18 Nov 1990  0:22:28
  9.  * Initial revision.
  10.  * Revision 4.3.2.1  89/11/08  03:19:35  sob
  11.  * Removed some dependencies.
  12.  *
  13.  * Revision 4.3  85/05/01  11:42:08  lwall
  14.  * Baseline for release with 4.3bsd.
  15.  *
  16.  */
  17.  
  18. #include <stdio.h>
  19.  
  20. #define MAXKIT 100
  21. #define MAXKITSIZE 63000
  22. #define KITOVERHEAD 700
  23. #define FILEOVERHEAD 80
  24.  
  25. long tot[MAXKIT];
  26. FILE *outfp[MAXKIT];         /* of course, not this
  27.                               * many file descriptors */
  28.  
  29. main(argc, argv)
  30.    int argc;
  31.    char **argv;
  32. {
  33.    FILE *inp, *popen();
  34.    char buf[1024], filnam[128];
  35.    char *index();
  36.    register char *s;
  37.    register int i, newtot;
  38.  
  39.    sprintf(buf, "\
  40. ls -l `awk '{print $1}' <%s'` | awk '{print $8 \" \" $4}' | sort +1nr\
  41. ", argc > 1 ? argv[1] : "MANIFEST.new");
  42.    inp = popen(buf, "r");
  43.  
  44.    while (fgets(buf, 1024, inp) != (char *) NULL)
  45.    {
  46.       s = index(buf, ' ');
  47.       *s++ = '\0';
  48.       for (i = 1;
  49.             (newtot = tot[i] + atol(s) + FILEOVERHEAD) > MAXKITSIZE - KITOVERHEAD;
  50.             i++)
  51.          ;
  52.       if (!tot[i])
  53.       {
  54.          sprintf(filnam, "kit%d.list", i);
  55.          outfp[i] = fopen(filnam, "w");
  56.       }
  57.       tot[i] = newtot;
  58.       printf("Adding %s to kit %d giving %d bytes\n", buf, i, newtot);
  59.       fprintf(outfp[i], "%s\n", buf);
  60.    }
  61. }
  62.