int main( int argc, char ** argv ) { config(); char * name = NULL, * pool = NULL, * file = NULL; for( int i = 1; i < argc; ++i ) { if( is_arg_prefix( argv[i], "-help" ) ) { usage( argv[0] ); return 0; } else if( is_arg_prefix( argv[i], "-version" ) ) { version(); return 0; } else if( is_arg_prefix( argv[i], "-pool" ) ) { pool = argv[i]; } else if( is_arg_prefix( argv[i], "-name" ) ) { name = argv[i]; } else { file = argv[i]; } } FILE * f = NULL; if( file == NULL ) { file = strdup( "stdin" ); f = stdin; } else { f = fopen( file, "r" ); } if( f == NULL ) { fprintf( stderr, "Failed to open '%s', aborting (%d: %s)\n", file, errno, strerror( errno ) ); return 1; } int isEOF = 0, isError = 0, isEmpty = 0; ClassAd update( f, "\n", isEOF, isError, isEmpty ); if( isEOF || isError || isEmpty ) { fprintf( stderr, "Failed to parse '%s', aborting.\n", file ); if( isEOF ) { fprintf( stderr, "File ended unexpectedly. Please add a blank line the end of the file.\n" ); } if( isEmpty ) { fprintf( stderr, "File was empty.\n" ); } if( isError ) { fprintf( stderr, "Syntax error in file.\n" ); } return 1; } ClassAd reply; return updateMachineAdAt( name, pool, update, reply ); }
bool is_dash_arg_prefix(const char * parg, const char * pval, int must_match_length /*= 0*/) { if (*parg != '-') return false; ++parg; if (*parg == '-') ++parg; // allow -- as well as - for an arg prefix. return is_arg_prefix(parg, pval, must_match_length); }