Exemplo n.º 1
0
int main(int argc, char *argv[])
{
  bool		quiet = false;
  char const *	vserver;
  VserverTag	tag;
  
  while (1) {
    int		c = getopt_long(argc, argv, "ql", CMDLINE_OPTIONS, 0);
    if (c==-1) break;

    switch (c) {
      case 'h'		:  showHelp(1, argv[0], 0);
      case 'v'		:  showVersion();
      case 'l'		:  showTags();
      case 'q'		:  quiet = true; break;
      default		:
	WRITE_MSG(2, "Try '");
	WRITE_STR(2, argv[0]);
	WRITE_MSG(2, " --help' for more information.\n");
	exit(1);
	break;
    }
  }

  if (optind+2>argc) {
    execQuery("-", tgSYSINFO, 0, 0);
    WRITE_MSG(2, "\nAssumed 'SYSINFO' as no other option given; try '--help' for more information.\n");
    exit(0);
  }

  vserver = argv[optind];
  tag     = stringToTag(argv[optind+1]);

  if (tag==tgNONE) {
    WRITE_MSG(2, "Unknown tag; use '-l' to get list of valid tags\n");
    exit(1);
  }

  if (quiet) {
    int		fd = Eopen("/dev/null", O_WRONLY, 0644);
    Edup2(fd, 1);
    Eclose(fd);
  }

  return execQuery(vserver, tag, argc-(optind+2), argv+optind+2);
}
Exemplo n.º 2
0
void
openMsgfile(/*@in@*//*@null@*/char const *filename)
    /*@globals msg_fd@*/
    /*@modifies msg_fd@*/
{
  if (filename==0 || filename[0]=='\0')        { msg_fd =  2; }
  else if (strcmp(filename, "/dev/null")==0)   { msg_fd = -1; }
  else {
    int		new_fd;

    new_fd = Eopen(filename, O_CREAT|O_WRONLY|O_APPEND, 0400);
    msg_fd = Edup2(new_fd, 2);
    assert(msg_fd==2);

    Eclose(new_fd);
  }
}