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); }
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; } }
/* 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); }