summaryrefslogtreecommitdiffstats
path: root/core/modules/splashtool/data/:
blob: 71d7b9a321797b72b2c79094a98416f965a417b7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/ash

		screen_size="$(fbset | awk '$1 ~ /geometry/ {print $2" "$3}')"
		screen_width="${screen_size%% *}"
		screen_height="${screen_size#* }"
		fbsplash_cfg="/etc/fbsplash.cfg"
		fbsplash_ppm="/etc/splash.ppm.gz"
		if [ -s "$fbsplash_ppm" ]; then
			ppm_size="$(zcat "$fbsplash_ppm" | sed -n 2p)"
		else
			fbsplash_ppm="/etc/splash.ppm"
			if [ -s "$fbsplash_ppm" ]; then
				ppm_size="$(sed -n 2p "$fbsplash_ppm")"
			else
				echo "Splash screen requested, but not found in initramfs..." >&4
				MUTED_OUTPUT=
			fi
		fi
		ppm_width="${ppm_size%% *}"
		ppm_height="${ppm_size#* }"
		ppm_height="${ppm_height%% *}" # make sure nothing weird is trailing
		img_left="$(( ( screen_width - ppm_width ) / 2  ))"
		img_top="$(( ( screen_height - ppm_height ) / 2  ))"
		# just checking if nothing too weird is set
		if [ -n "$img_left" ] && [ -n "$img_top" ] \
			&& [ "$img_left" -ge 0 ] && [ "$img_left" -lt 8096 ] \
			&& [ "$img_top" -ge 0 ] && [ "$img_top" -lt 8096 ]; then
			printf "IMG_TOP=%d\nIMG_LEFT=%d\n" \
				"$img_top" "$img_left" \
				> "$fbsplash_cfg"
			fbsplash -b -i "$fbsplash_cfg" -s "$fbsplash_ppm" || MUTED_OUTPUT=
		else
			# otherwise just use top left and be done with it
			fbsplash -b -s "$fbsplash_ppm" || MUTED_OUTPUT=
		fi