From c3a792f598a86e84f5e50186efaa671869aabd9a Mon Sep 17 00:00:00 2001
From: Brett Parker <iDunno@sommitrealweird.co.uk>
Date: Sun, 1 Dec 2019 12:46:56 +0000
Subject: [PATCH] Add simple MAXTHREADS variable for low memory machines

---
 bpgallery.sh | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/bpgallery.sh b/bpgallery.sh
index c2a3870..e3110fd 100755
--- a/bpgallery.sh
+++ b/bpgallery.sh
@@ -377,6 +377,16 @@ else
 	WCCOMMAND="$WCCOMMAND -l"
 fi
 
+if [[ -z $MAXTHREADS ]]; then
+	# if there's more than 2G of memory, then do 4 threads, otherwise, just 1
+	__total_memory=$(free -t -g | sed -ne '2 { s#Mem:[[:space:]]*\([0-9]*\)[[:space:]]*.*$#\1#; p; }')
+	if [[ $__total_memory -ge 2 ]]; then
+		MAXTHREADS=4
+	else
+		MAXTHREADS=1
+	fi
+fi
+
 if [[ -z $WIDTH ]]; then
 	WIDTH=100
 fi
@@ -631,7 +641,7 @@ function generate_resized_images() {
 					$ECHOCOMMAND -n -e "\000"
 			fi
 		done | \
-		$XARGSCOMMAND -0 --verbose --max-procs=4 -I {} $CONVERTTOOL -resize $1 '{}' $2/'{}' 2>&1 | \
+		$XARGSCOMMAND -0 --verbose --max-procs=$MAXTHREADS -I {} $CONVERTTOOL -resize $1 '{}' $2/'{}' 2>&1 | \
 			while read throwout; do
 				$ECHOCOMMAND done: $currentimage/$imagestoupdate images
 				currentimage=$((currentimage+1))
-- 
2.39.5