Пример #1
0
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 );
}
Пример #2
0
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);
}