From 1bf3c3ad4e8c4f2ce35af71a40c67c6c8ce60ee2 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@fe.uni-lj.si> Date: Thu, 11 Sep 2014 12:23:44 +0000 Subject: [PATCH] Tape template beginning. --- src/io.c | 25 +++++++++++++++++++------ src/io.h | 1 + 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/io.c b/src/io.c index 00f6db5..f9b0164 100644 --- a/src/io.c +++ b/src/io.c @@ -439,6 +439,7 @@ sprintf(command_line_args.output_fullfilename,"output.pvd"); sprintf(command_line_args.dump_fullfilename,"dump.bin"); sprintf(command_line_args.tape_fullfilename,"tape"); + sprintf(command_line_args.tape_templatefull,"./tape"); FILE *file; while (1) @@ -452,6 +453,7 @@ {"directory", required_argument, 0, 'd'}, {"dump-filename", required_argument,0, 'f'}, {"tape-options",required_argument,0,'c'}, + {"tape-template", required_argument,0,0}, {0, 0, 0, 0} }; /* getopt_long stores the option index here. */ @@ -470,10 +472,14 @@ /* If this option set a flag, do nothing else now. */ if (long_options[option_index].flag != 0) break; - printf ("option %s", long_options[option_index].name); +/* printf ("option %s", long_options[option_index].name); if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); + printf (" with arg %s", optarg); + printf ("\n"); */ + //TODO: find a better way. + if(strcmp(long_options[option_index].name,"tape-template")==0){ + strcpy(command_line_args.tape_templatefull,optarg); + } break; case 'c': @@ -534,6 +540,7 @@ if ((file = fopen(buffer, "w")) == NULL) { fprintf(stderr,"Could not create output file %s!\n", buffer); fatal("Please specify correct output file or check permissions of the file",1); + //there is a tape template. make a copy into desired directory } else { fclose(file); @@ -544,8 +551,15 @@ strcpy(buffer,command_line_args.path); strcat(buffer,command_line_args.tape_fullfilename); if (stat(buffer, &sb) == -1) { - ts_fprintf(stderr,"Tape '%s' does not exist!\n",buffer); - fatal("Please select correct tape or check permissions of the file",1); + + //tape does not exist. does tape template exist? + if(stat(command_line_args.tape_templatefull, &sb)==-1){ + ts_fprintf(stderr,"Tape '%s' does not exist and no tape template was specified (or does not exist)!\n",buffer); + fatal("Please select correct tape or check permissions of the file",1); + } else { + //tape template found + fatal("Samo did not program template copy yet",1); + } } else { strcpy(command_line_args.tape_fullfilename,buffer); } @@ -573,7 +587,6 @@ return TS_SUCCESS; } - diff --git a/src/io.h b/src/io.h index c6f97fd..ec04fb1 100644 --- a/src/io.h +++ b/src/io.h @@ -15,6 +15,7 @@ char output_fullfilename[1024]; //name of the master file char dump_fullfilename[1024]; //name of the dump file char tape_fullfilename[1024]; //name of the tape file + char tape_templatefull[1024]; //name of the tape template file char tape_opts[1000]; //commandline tape options } ts_args; -- Gitblit v1.9.3