librazor/razor.c
changeset 375 c903635ae422
parent 373 fda83d91e600
child 376 d15a16347c77
     1.1 --- a/librazor/razor.c	Fri Jul 03 19:06:29 2009 +0100
     1.2 +++ b/librazor/razor.c	Mon Jul 06 18:19:13 2009 +0100
     1.3 @@ -489,13 +489,28 @@
     1.4  	struct list *link;
     1.5  	const char *prefix;
     1.6  
     1.7 +	environment_init(&env);
     1.8 +	link = list_first(&package->install_prefixes, &set->prefix_pool);
     1.9 +	for (i = 0; link; i++) {
    1.10 +		prefix = (const char *)set->string_pool.data + link->data;
    1.11 +		sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
    1.12 +		environment_add_variable(&env, buffer, prefix);
    1.13 +		link = list_next(link);
    1.14 +	}
    1.15 +
    1.16  	razor_package_get_details(set, package,
    1.17  				  RAZOR_DETAIL_PREUNPROG, &program,
    1.18  				  RAZOR_DETAIL_PREUN, &script,
    1.19  				  RAZOR_DETAIL_LAST);
    1.20  
    1.21 -	if (razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script))
    1.22 +	environment_set(&env);
    1.23 +	retval = razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script);
    1.24 +	environment_unset(&env);
    1.25 +
    1.26 +	if (retval) {
    1.27 +		environment_release(&env);
    1.28  		return -1;
    1.29 +	}
    1.30  
    1.31  	fi = razor_file_iterator_create(set, package);
    1.32  
    1.33 @@ -513,27 +528,20 @@
    1.34  
    1.35  	razor_file_iterator_destroy(fi);
    1.36  
    1.37 -	if (retval)
    1.38 +	if (retval) {
    1.39 +		environment_release(&env);
    1.40  		return retval;
    1.41 +	}
    1.42  
    1.43  	razor_package_get_details(set, package,
    1.44  				  RAZOR_DETAIL_POSTUNPROG, &program,
    1.45  				  RAZOR_DETAIL_POSTUN, &script,
    1.46  				  RAZOR_DETAIL_LAST);
    1.47  
    1.48 -	environment_init(&env);
    1.49 -	link = list_first(&package->install_prefixes, &set->prefix_pool);
    1.50 -	for (i = 0; link; i++) {
    1.51 -		prefix = (const char *)set->string_pool.data + link->data;
    1.52 -		sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
    1.53 -		environment_add_variable(&env, buffer, prefix);
    1.54 -		link = list_next(link);
    1.55 -	}
    1.56  	environment_set(&env);
    1.57 +	retval = razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script);
    1.58 +	environment_unset(&env);
    1.59  
    1.60 -	retval = razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script);
    1.61 -
    1.62 -	environment_unset(&env);
    1.63  	environment_release(&env);
    1.64  
    1.65  	return retval;