#include #include #include main(argc,argv) int argc; char *argv[]; { char cmd[1000]; char *release; FILE *dirs; FILE *files; FILE *mover; FILE *popen(); FILE *script; char dirname[1000]; char filename[1000]; char fixedname[1000]; char fixedpath[1000]; char tapename[10]; char *scriptname = "UNPACK.COM"; char *altscript = "/tmp/UNPACK.COMXXXXXX"; char *startname = "AAAAAAAAA"; int i; int j; char *k; int pathlen; int dot; int pipeout=0; if(argc < 2) usage(); if(*argv[1] == '-') { mover = stdout; pipeout=1; } else { mover = fopen("vmsprep.namelist","w"); } strcpy(tapename,startname); if(pipeout) { mktemp(altscript); script = fopen(altscript,"w"); } else { script = fopen(scriptname,"w"); } for(j=1;j1 ) fprintf(stderr,"error: too many dots in filename %s \n", fixedname); sprintf(cmd,"%s %s.MOV\n", filename,tapename); fprintf(mover,"%s",cmd); if(*fixedpath != NULL) { fprintf(script,"$ RENAME %s.MOV [.%s]%s%s\n",tapename,fixedpath, fixedname,dot==0?".":""); } else { fprintf(script,"$ RENAME %s.MOV []%s%s\n",tapename,fixedname, dot==0?".":""); } dot=0; bumpname(tapename); } pclose(files); } fclose(script); if(pipeout) fprintf(mover,"%s ",altscript); fprintf(mover,"%s\n",scriptname); fclose(mover); } bumpname(name) char name[10]; { int i; for(i=8;i>=0;i--) { name[i]++; if(name[i] > 'Z') { name[i] = 'A'; } else { return; } } } usage() { fprintf(stderr,"vmsprep: usage: vmsprep dirname [dirname...] \n"); exit(); }