ソースを参照

rollback to fix

UltimateByte 9 年 前
コミット
4e79f341e5
1 ファイル変更17 行追加9 行削除
  1. 17 9
      lgsm/functions/mods_core.sh

+ 17 - 9
lgsm/functions/mods_core.sh

@@ -190,16 +190,24 @@ fn_postinstall_tasks(){
 	# Output to the user
 	fn_print_information_nl "Rearranging ${modcommand}-files.list"
 	fn_script_log_info "Rearranging ${modcommand}-files.list"
-	removefromlist="cfg;addons;"
+	smremovefromlist="cfg;addons;"
 	# Loop through every single line to find any of the files to remove from the list
 	# that way these files won't get removed upon update or uninstall
-	# How many elements to remove from list
-	smremoveamount="$(echo "${removefromlist}" | awk -F ';' '{ print NF }')"
-	# Test all subvalue of "modkeepfiles" using the ";" separator
-	for ((filesindex=1; filesindex < ${smremoveamount}; filesindex++)); do
-		# Put current file into test variable
-		rmtestvar="$( echo "${removefromlist}" | awk -F ';' -v x=${filesindex} '{ print $x }' )"
-		# Remove matches
-		grep -vFf ${modsdatadir}/${modcommand}-files.list "${rmtestvar}" > ${modsdatadir}/${modcommand}-files.list
+	fileslistline=1
+	while [ $fileslistline -le $modsfilelistsize ]; do
+		testline="$(sed "${fileslistline}q;d" "${modsdatadir}/${modcommand}-files.list")"
+		# How many elements to remove from list
+		smremoveamount="$(echo "${smremovefromlist}" | awk -F ';' '{ print NF }')"
+		# Test all subvalue of "modkeepfiles" using the ";" separator
+		for ((filesindex=1; filesindex < ${smremoveamount}; filesindex++)); do
+			# Put current file into test variable
+			smremovetestvar="$( echo "${smremovefromlist}" | awk -F ';' -v x=${filesindex} '{ print $x }' )"
+			# If it matches
+			if [ "${testline}" == "${smremovetestvar}" ]; then
+				# Then delete the line!
+				sed -i "${testline}d" "${modsdatadir}/${modcommand}-files.list"
+			fi
+		done
+		let fileslistline=fileslistline+1
 	done
 }