librazor/razor.c
changeset 422 6fa783097ca1
parent 418 33b825d3128d
child 424 8cbc438cc298
     1.1 --- a/librazor/razor.c	Thu Feb 09 20:45:27 2012 +0000
     1.2 +++ b/librazor/razor.c	Sat Feb 11 09:49:58 2012 +0000
     1.3 @@ -635,7 +635,7 @@
     1.4  	struct razor_package *p;
     1.5  	char *buffer, buf[32];
     1.6  	const char *name, *program, *script;
     1.7 -	int i, count;
     1.8 +	int i, count, retval = 0;
     1.9  	struct environment env;
    1.10  	struct list *link;
    1.11  	const char *prefix;
    1.12 @@ -660,11 +660,11 @@
    1.13  					  RAZOR_DETAIL_PREUN, &script,
    1.14  					  RAZOR_DETAIL_LAST);
    1.15  
    1.16 -		razor_run_script(root, RAZOR_PROPERTY_PREUN, program,
    1.17 -				 script, install_count);
    1.18 +		retval = razor_run_script(root, RAZOR_PROPERTY_PREUN, program,
    1.19 +					  script, install_count);
    1.20  	}
    1.21  
    1.22 -	if (stage & RAZOR_STAGE_FILES) {
    1.23 +	if (!retval && (stage & RAZOR_STAGE_FILES)) {
    1.24  		fi = razor_file_iterator_create(prev, package, 1);
    1.25  
    1.26  		while (razor_file_iterator_next(fi, &name)) {
    1.27 @@ -682,16 +682,18 @@
    1.28  		}
    1.29  
    1.30  		razor_file_iterator_destroy(fi);
    1.31 +
    1.32 +		retval = razor_atomic_in_error_state(atomic);
    1.33  	}
    1.34  
    1.35 -	if (stage & RAZOR_STAGE_SCRIPTS_POST) {
    1.36 +	if (!retval && (stage & RAZOR_STAGE_SCRIPTS_POST)) {
    1.37  		razor_package_get_details(prev, package,
    1.38  					  RAZOR_DETAIL_POSTUNPROG, &program,
    1.39  					  RAZOR_DETAIL_POSTUN, &script,
    1.40  					  RAZOR_DETAIL_LAST);
    1.41  
    1.42 -		razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script,
    1.43 -				 install_count);
    1.44 +		retval |= razor_run_script(root, RAZOR_PROPERTY_POSTUN, program,
    1.45 +					   script, install_count);
    1.46  	}
    1.47  
    1.48  	if (stage & RAZOR_STAGE_SCRIPTS) {
    1.49 @@ -699,7 +701,7 @@
    1.50  		environment_release(&env);
    1.51  	}
    1.52  
    1.53 -	return razor_atomic_in_error_state(atomic);
    1.54 +	return retval;
    1.55  }
    1.56  
    1.57  RAZOR_EXPORT const char *