spk rev 44

Changed spk-add to ask for removing conflicting packages.
This eliminates the need for volitile.cpio.gz and modifiers
author Christian Mesh <meshca@clarkson.edu>
date Tue May 15 22:16:07 2012 -0500 (2012-05-15)
parents ddb3c10c0a4b
children 9ab44da78a1c
files spk-add
line diff
     1.1 --- a/spk-add	Tue May 15 21:48:35 2012 -0500
     1.2 +++ b/spk-add	Tue May 15 22:16:07 2012 -0500
     1.3 @@ -140,24 +140,21 @@
     1.4  	debug "check modified files"
     1.5  	for file in $file_list
     1.6  	do
     1.7 -		filegrep=$(egrep ^${file}$ $installed/*/files.list)
     1.8 +		local filegrep=$(egrep ^${file}$ $installed/*/files.list)
     1.9  		if [ "$filegrep" ]; then
    1.10  			local list=$(echo $filegrep | cut -d ":" -f 1)
    1.11 -			local name=$(basename $(dirname $list))
    1.12 -			[  "$pkg" == "$name" ] && continue
    1.13 -			echo -n "Modified package: $name"
    1.14 -			# Tell $name that $pkg is going to overwrite some of its files
    1.15 -			if [ -s "$installed/$name/volatile.cpio.gz" ]; then
    1.16 -				# We can modify backed up files without notice
    1.17 -				zcat $installed/$name/volatile.cpio.gz | cpio -t --quiet | \
    1.18 -				grep -q "^${file#/}$" && continue
    1.19 -			fi
    1.20 -			# Add $pkg to the modifiers list og $name
    1.21 -			if ! egrep -q ^${package_name}$ $installed/$name/modifiers; then
    1.22 -				debug "Added $pkg to: $name/modifiers"
    1.23 -				echo "$package_name" >> $installed/$name/modifiers
    1.24 -			fi
    1.25 -			status
    1.26 +			for pkg_file in $list; do
    1.27 +				local name=$(basename $(dirname $pkg_file))
    1.28 +				[  "$pkg" == "$name" ] && continue 2
    1.29 +				eval_gettext "Conflict package: \$name"; newline
    1.30 +				# If confirm is set, ask to remove
    1.31 +				if ! $confirm || gettext "Remove " && confirm; then
    1.32 +					spk-rm $name
    1.33 +				else
    1.34 +					eval_gettext "Warning! /$file will be overwritten!"; newline
    1.35 +					eval_gettext "If you remove /$package_name, be sure to reinstall $name"; newline
    1.36 +				fi
    1.37 +			done
    1.38  		fi
    1.39  	done
    1.40