#include <stdlib.h>
#include <unistd.h>
#include "options.h"

options_t parse_options(int argc, char *argv[])
{
  int opt;
  options_t options;

  // Default values
  options.infile = stdin;
  options.outfile = stdout;
  options.encrypt = true;
  options.help = false;

  while((opt = getopt(argc, argv, "f:o:deh")) != -1) {
    switch(opt) {
      case 'f':
        options.infile = fopen(optarg, "r");
        if(options.infile == NULL) {
          fprintf(stderr, "Error: Unable to open %s for reading.\n", optarg);
          exit(1);
        }
        break;
      case 'o':
        options.outfile = fopen(optarg, "w");
        if(options.outfile == NULL) {
          fprintf(stderr, "Error: Unable to open %s for writing.\n", optarg);
          exit(1);
        }
        break;
      case 'd':
        options.encrypt = false;
        break;
      case 'e':
        options.encrypt = true;
        break;
      case 'h':
        options.help = true;
        break;
    }
  }

  return options;
}