You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.7 KiB

#!/bin/bash
# create boot image from program versions
# for example, https://ipsumimage.appspot.com/640x480.png?s=28&b=523&f=e53&l=|bash++4.4.20|VBoxControl++6.0.10r132072|code++1.43.1|git++2.17.1|brave-browser++80.1.5.113|python3++3.6.9
set -euo pipefail
# Modify this list as needed.
version_commands=(
"bash --version | grep -Eo '[0-9]+.[0-9]+.[0-9]+'"
"VBoxControl --version" # virtualbox guest additions
"code --version | head -1"
"git --version | xargs | tr ' ' '\n' | tail -1"
"brave-browser --version | xargs | tr ' ' '\n' | tail -1"
"python3 --version | xargs | tr ' ' '\n' | tail -1"
)
# image settings
resolution=640x480
background=523
fontcolor=e53
fontsize=28
# build boot message
message=""
for ver_command in "${version_commands[@]}"; do
# program name
program="$(echo $ver_command | awk '{print $1;}')"
if which $program > /dev/null; then
# pipes become newlines
message+="|"
# program name
message+="$program"
# pluses become spaces
message+="++"
# program version. eval allows additional pipeline commands
message+="$(eval $ver_command)"
fi
done
# dummyimage.com can be used instead (or as fallback), but
# it a) uses a slightly different url structure
# and b) font-size is sensitive to long messages (whereas
# ipsumimage let's you specify font size directly)
host=ipsumimage.appspot.com
remote_url="https://$host/$resolution.png?s=$fontsize&b=$background&f=$fontcolor&l=$message"
target_path="$(dirname $(readlink -f $0))/../bootfiles/bootlogo.png"
echo "downloading $remote_url"
wget -O "$target_path" "$remote_url" || curl -o "$target_path" "$remote_url"
echo "complete"