#!/bin/bash
JSONMAP=mapslideshowdata.json
#!/bin/bash
# Extract keys and sort them by their trailing numeric value
chunks=$(jq -r 'keys[]' $JSONMAP | sort -V)
for chunk in $chunks; do
echo "=== Processing $chunk ==="
# Safely evaluate and import the zoom and fade keys as true Bash arrays
eval "$(jq -r --arg c "$chunk" '.[$c] | "zoom=(\(.zoom | map(@sh) | join(" ")))" , "fade=(\(.fade | map(@sh) | join(" ")))"' $JSONMAP)"
# Print out the results to verify they are real arrays
echo "Zoom array length: ${#zoom[@]}"
echo "First zoom element: ${zoom[0]}"
echo "All fade elements: ${fade[*]}"
echo ""
done
CHUNK_SIZE=10
CHUNK_NAME=""
LAST_CHUNK_NAME=""
MAX_CHUNK_IDX=117
CHUNK_POS=0
for((count=0;count<1256;count++));do
CHUNK_IDX=$(( $count/$CHUNK_SIZE ))
CHUNK_NAME="chunk$CHUNK_IDX"
echo "image $count : $CHUNK_NAME pos $CHUNK_POS"
if [ "$LAST_CHUNK_NAME" != "$CHUNK_NAME" ]; then
LAST_CHUNK_NAME=$CHUNK_NAME
CHUNK_POS=0
fi
if [ $CHUNK_IDX -le $MAX_CHUNK_IDX ]; then
if [ "$LAST_CHUNK_NAME" != "$CHUNK_NAME" ]; then
eval "$(jq -r --arg c "$CHUNK_NAME" '.[$c] | "zoom=(\(.zoom | map(@sh) | join(" ")))" , "fade=(\(.fade | map(@sh) | join(" ")))"' $JSONMAP)"
fi
echo ""
echo -n "zoom element:"
for((i=0;i<${#zoom[@]};i++)); do
if [ $i -eq $CHUNK_POS ]; then
echo -n " ["${zoom[$i]}"]"
else
echo -n " "${zoom[$i]}
fi
done
echo ""
echo -n "fade element:"
for((i=0;i<${#fade[@]};i++)); do
if [ $i -eq $CHUNK_POS ]; then
echo -n " ["${fade[$i]}"]"
else
echo -n " "${fade[$i]}
fi
done
echo ""
else
echo "No eval, run random instead"
fi
CHUNK_POS=$(( CHUNK_POS+1 ))
done
Top