While I was away from the net I hacked on this some more, and managed to get the '...done' bits tacked on the end of messages, and colours - yellow for warnings and red for failures.
First, I might say I'm not 100% thrilled with plymouth, in particular the boot messages don't seem to be saved to /var/log/boot.log as they should be. You can press esc to see them, but it's not great. 
Anyway, first I messed with /lib/lsb/init-functions. I wanted to get the separate additions to each function as simple as possible, and didn't want to test for the existence of /bin/plymouth every time a function was called, so made a new function to send messages to plymouth which each of those init-functions could use:
# SEND MESSAGES TO PLYMOUTH
if [ -x /bin/plymouth ] && pidof plymouthd >/dev/null
then
plymouth_send() {
[ "$1" = '-n' ] && { # add a flag '>' for lines that will be extended
shift
/bin/plymouth message --text=">$*" || true
return
}
[ "$1" = '-w' ] && { # add "warning" formatting
shift
/bin/plymouth update --status="warning" || true
/bin/plymouth message --text="$*" || true
/bin/plymouth update --status="normal" || true
return
}
[ "$1" = '-f' ] && { # add "failed" formatting
shift
/bin/plymouth update --status="failed" || true
/bin/plymouth message --text="$*" || true
/bin/plymouth update --status="normal" || true
return
}
/bin/plymouth message --text="$*" || true
}
else
plymouth_send() { :; }
fi
EDIT: updated 11/04/26
And then modified each function, adding a plymouth_send line, like:
echo -n "$@"
plymouth_send -n "$@"
and
elif [ $1 -eq 255 ]; then
/bin/echo -e " ${YELLOW}(warning).${NORMAL}"
plymouth_send -w " (warning)."
else
/bin/echo -e " ${RED}failed!${NORMAL}"
plymouth_send -f " failed!"
So the function plymouth_send behaves almost like echo. My version of init-functions is here:
http://crunchbanglinux.org/pastebin/1022 EDIT: updated 11/04/26
But that begs the question of how to send messages. OK the page Tuna got the original idea from used 'plymouth update' to send messages, while plymouth-usplash uses 'plymouth message' which seemed more appropriate to me,and left update for other purposes. I thought "warning" or "failed" qualified OK for status updates, so used them to get the colour information sent. That left the "newline or not" problem. There might well be a better way, but I stuck a ">" on the beginning of messages which shouldn't be ended with a newline.
The plymouth script then takes the ">" off again, and attaches the next nessage to the end of that one. Some shortening is also done to fit into the 50 (or whatever) character limit, and colour changed if a "status update" has come in. Anyway, here's the end result:
http://crunchbanglinux.org/pastebin/1019
It's working OK for me, except for one or two messages which are still being line-broken unnecessarily, or not broken even if they should be. I don't know what's happening there, but 90% or so looks right.
To try it out: follow Tuna's instructions in the first post, then substitute my /lib/lsb/init-functions for yours, and my statler.script for Tuna's. (Make backups first!)
Run sudo update-initramfs -u again and reboot.
Hope you like it. 
Last edited by johnraff (2011-04-25 17:16:42)
John
------------------------
( a boring
Japan blog , and idle
twitterings )
“Good morning sir, which way up would you like your reality today?” "As it comes, Jeeves, as it comes..."