#include stdio.h

/*
 * pipeliner.c - pipeline executor
 *
 * written by C.Bongiovanni - October 1984
 */

char ins[30];
char outs[30];
char cmd[80];
long dsc[2];
long dsc2[2];

main (argc,argv)
char **argv;
{
   int i;
   parseargs (argv);
   dsc[0] = strlen ("SYS$INPUT");
   dsc[1] = "SYS$INPUT";
   dsc2[0] = strlen (ins);
   dsc2[1] = ins;
   i = lib$set_logical (dsc,dsc2);
/*
   printf (" setinput = %x; assign %s to %s\n",i,dsc2[1],dsc[1]);
*/
   dsc[0] = strlen ("SYS$OUTPUT");
   dsc[1] = "SYS$OUTPUT";
   dsc2[0] = strlen (outs);
   dsc2[1] = outs;
   i = lib$set_logical (dsc,dsc2);
/*
   fprintf (stderr," setoutput = %x; assign %s to %s\n",i,dsc2[1],dsc[1]);
*/
   dsc[0] = strlen (cmd);
   dsc[1] = cmd;
/*
   fprintf (stderr," exec %s\n",dsc[1]);
*/
   i = lib$do_command (dsc);
   fprintf (stderr," errore, do_command = %x\n",i);
}

parseargs (argv)
char **argv;
{
   int i;
   char *c;
   strcpy (cmd,"");
   c = cmd;
   for (i=1;strcmp (argv[i],"-I/O");i++) {
/*
      fprintf (stderr," i = %d\n",i);
      fprintf (stderr,"argv[i] = %s\n",argv[i]);
*/
      *c++ = ' ';
      strcpy (c,argv[i]);
      c += strlen (argv[i]);
      *c = '\0';
   }
   strcpy (ins,argv[i+1]);
   strcpy (outs,argv[i+2]);
}
