Esempio n. 1
0
int
main(int argc, char **argv) {
   int status, status2;
   rErrMsg_t errMsg;

   rodsArguments_t myRodsArgs;

   char *mySubName;
   char *myName;

   rodsEnv myEnv;


   rodsLogLevel(LOG_ERROR);

   status = parseCmdLineOpt (argc, argv, "AhvVlz:", 0, &myRodsArgs);
   if (status) {
      printf("Use -h for help.\n");
      exit(1);
   }

   if (myRodsArgs.help==True) {
      usage();
      exit(0);
   }

   if (myRodsArgs.zone==True) {
      strncpy(zoneArgument, myRodsArgs.zoneName, MAX_NAME_LEN);
   }

   status = getRodsEnv (&myEnv);
   if (status < 0) {
      rodsLog (LOG_ERROR, "main: getRodsEnv error. status = %d",
	       status);
      exit (1);
   }

   Conn = rcConnect (myEnv.rodsHost, myEnv.rodsPort, myEnv.rodsUserName,
                     myEnv.rodsZone, 0, &errMsg);

   if (Conn == NULL) {
      myName = rodsErrorName(errMsg.status, &mySubName);
      rodsLog(LOG_ERROR, "rcConnect failure %s (%s) (%d) %s",
	      myName,
	      mySubName,
	      errMsg.status,
	      errMsg.msg);

      exit (2);
   }

   status = clientLogin(Conn);
   if (status != 0) {
      exit (3);
   }

   status2=0;
   if (myRodsArgs.optind == argc) {  /* no resource name specified */
      status = showResc(argv[myRodsArgs.optind], myRodsArgs.longOption);
      status2 = showRescGroups(myRodsArgs.longOption);
   }
   else {
      if (myRodsArgs.accessControl == True) {
	 showRescAcl(argv[myRodsArgs.optind]);
      }
      else {
	 status = showOneRescGroup(argv[myRodsArgs.optind], 
				   myRodsArgs.longOption);
	 if (status==0) {
	    status2 = showResc(argv[myRodsArgs.optind], myRodsArgs.longOption);
	    if (status2==0) {
	       /* Only print this if both fail */
	       printf("Resource-group %s does not exist.\n",
		      argv[myRodsArgs.optind]); 
	    }
	 }
      }
   }

   printErrorStack(Conn->rError);

   rcDisconnect(Conn);

   /* Exit 0 if one or more items were displayed */
   if (status > 0) exit(0);
   if (status2 > 0) exit(0);
   exit(4);
}
Esempio n. 2
0
int
main( int argc, char **argv ) {

    signal( SIGPIPE, SIG_IGN );

    int status;
    rErrMsg_t errMsg;

    rodsArguments_t myRodsArgs;

    rodsEnv myEnv;


    rodsLogLevel( LOG_ERROR );

    status = parseCmdLineOpt( argc, argv, "hvVlz:Z", 1, &myRodsArgs );
    if ( status ) {
        printf( "Use -h for help.\n" );
        exit( 1 );
    }

    if ( myRodsArgs.help == True ) {
        usage();
        exit( 0 );
    }

    if ( myRodsArgs.zone == True ) {
        strncpy( zoneArgument, myRodsArgs.zoneName, MAX_NAME_LEN );
    }

    status = getRodsEnv( &myEnv );
    if ( status < 0 ) {
        rodsLog( LOG_ERROR, "main: getRodsEnv error. status = %d",
                 status );
        exit( 1 );
    }

    // =-=-=-=-=-=-=-
    // initialize pluggable api table
    irods::pack_entry_table& pk_tbl  = irods::get_pack_table();
    irods::api_entry_table&  api_tbl = irods::get_client_api_table();
    init_api_table( api_tbl, pk_tbl );

    Conn = rcConnect( myEnv.rodsHost, myEnv.rodsPort, myEnv.rodsUserName,
                      myEnv.rodsZone, 0, &errMsg );

    if ( Conn == NULL ) {
        char *mySubName = NULL;
        const char *myName = rodsErrorName( errMsg.status, &mySubName );
        rodsLog( LOG_ERROR, "rcConnect failure %s (%s) (%d) %s",
                 myName,
                 mySubName,
                 errMsg.status,
                 errMsg.msg );
        free( mySubName );

        exit( 2 );
    }

    status = clientLogin( Conn );
    if ( status != 0 ) {
        exit( 3 );
    }

    // tree view
    if ( myRodsArgs.longOption != True ) {
        if ( myRodsArgs.ascii == True ) { // character set for printing tree
            gfx_mode = 0;
        }

        status = showRescTree( argv[myRodsArgs.optind] );
    }
    else { // regular view
        status = showResc( argv[myRodsArgs.optind], myRodsArgs.longOption );
    }

    printErrorStack( Conn->rError );
    rcDisconnect( Conn );

    /* Exit 0 if one or more items were displayed */
    if ( status >= 0 ) {
        return 0;
    }
    else {
        return status;
    }
}
Esempio n. 3
0
File: imeta.c Progetto: UPPMAX/irods
/* handle a command,
   return code is 0 if the command was (at least partially) valid,
   -1 for quitting,
   -2 for if invalid
   -3 if empty.
 */
int
doCommand(char *cmdToken[]) {
   int wild, doLs;
   if (strcmp(cmdToken[0],"help")==0 ||
	      strcmp(cmdToken[0],"h") == 0) {
      usage(cmdToken[1]);
      return(0);
   }
   if (strcmp(cmdToken[0],"quit")==0 ||
	      strcmp(cmdToken[0],"q") == 0) {
      return(-1);
   }

   handleMinusL(cmdToken[1]);
   handleMinusL(cmdToken[2]);

   if (strcmp(cmdToken[1],"-C")==0) cmdToken[1][1]='c';
   if (strcmp(cmdToken[1],"-D")==0) cmdToken[1][1]='d';
   if (strcmp(cmdToken[1],"-R")==0) cmdToken[1][1]='r';
   if (strcmp(cmdToken[1],"-G")==0) cmdToken[1][1]='g';
   if (strcmp(cmdToken[2],"-C")==0) cmdToken[2][1]='c';
   if (strcmp(cmdToken[2],"-D")==0) cmdToken[2][1]='d';
   if (strcmp(cmdToken[2],"-R")==0) cmdToken[2][1]='r';
   if (strcmp(cmdToken[2],"-G")==0) cmdToken[2][1]='g';

   if (strcmp(cmdToken[0],"adda") == 0) {
      modAVUMetadata("adda", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      return(0);
   }
   if (strcmp(cmdToken[0],"add") == 0) {
      modAVUMetadata("add", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      return(0);
   }
   if (strcmp(cmdToken[0],"addw") == 0) {
      int myStat;
      myStat = modAVUMetadata("addw", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      if (myStat > 0) {
	 printf("AVU added to %d data-objects\n", myStat);
	 lastCommandStatus = 0;
      }
      return(0);
   }
   if (strcmp(cmdToken[0],"rmw") == 0) {
      modAVUMetadata("rmw", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      return(0);
   }
   if (strcmp(cmdToken[0],"rm") == 0) {
      modAVUMetadata("rm", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      return(0);
   }
   if (testMode) {
      if (strcmp(cmdToken[0],"rmi") == 0) {
	 modAVUMetadata("rmi", cmdToken[1], cmdToken[2], 
			cmdToken[3], cmdToken[4], cmdToken[5],
			cmdToken[6], cmdToken[7], "");
	 return(0);
      }
   }
   if (strcmp(cmdToken[0],"mod") == 0) {
      modAVUMetadata("mod", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], cmdToken[8]);
      return(0);
   }
   if (strcmp(cmdToken[0],"set") == 0) {
      modAVUMetadata("set", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7], "");
      return(0);
   }
   doLs=0;
   if (strcmp(cmdToken[0],"lsw") == 0) {
      doLs=1;
      wild=1;
   }
   if (strcmp(cmdToken[0],"ls") == 0) {
      doLs=1;
      wild=0;
   }
   if (doLs) {
      if (strcmp(cmdToken[1],"-d")==0) {
	 showDataObj(cmdToken[2], cmdToken[3], wild);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-C")==0 || strcmp(cmdToken[1],"-c")==0) {
	 showColl(cmdToken[2], cmdToken[3], wild);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-R")==0 || strcmp(cmdToken[1],"-r")==0) {
	 showResc(cmdToken[2], cmdToken[3], wild);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-G")==0 || strcmp(cmdToken[1],"-g")==0) {
	 showRescGroup(cmdToken[2], cmdToken[3], wild);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-u")==0) {
	 showUser(cmdToken[2], cmdToken[3], wild);
	 return(0);
      }
   }

   if (strcmp(cmdToken[0],"qu") == 0) {
      if (strcmp(cmdToken[1],"-d")==0) {
	 queryDataObj(cmdToken);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-C")==0 || strcmp(cmdToken[1],"-c")==0) {
	 queryCollection(cmdToken);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-R")==0 || strcmp(cmdToken[1],"-r")==0) {
	 queryResc(cmdToken[2], cmdToken[3], cmdToken[4]);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-G")==0 || strcmp(cmdToken[1],"-g")==0) {
	 queryRescGroup(cmdToken[2], cmdToken[3], cmdToken[4]);
	 return(0);
      }
      if (strcmp(cmdToken[1],"-u")==0) {
	 queryUser(cmdToken[2], cmdToken[3], cmdToken[4]);
	 return(0);
      }
   }

   if (strcmp(cmdToken[0],"cp") == 0) {
      modCopyAVUMetadata("cp", cmdToken[1], cmdToken[2], 
		     cmdToken[3], cmdToken[4], cmdToken[5],
		     cmdToken[6], cmdToken[7]);
      return(0);
   }

   if (strcmp(cmdToken[0],"test") == 0) {
      if (testMode) {
	 testMode=0;
	 printf("testMode is now off\n");
      }
      else {
	 testMode=1;
	 printf("testMode is now on\n");
      }
      return(0);
   }

   if (*cmdToken[0] != '\0') {
      printf("unrecognized command, try 'help'\n");
      return(-2);
   }
   return(-3);
}