fbs annotate fbs @ rev 8

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Feb 26 12:27:47 2019 +0100 (2019-02-26)
parents 889bd09f2370
children
rev   line source
pankso@4 1 #!/bin/sh
pankso@4 2 #
pankso@4 3 # Fbs - Graphical framebuffer boot using Busybox fbsplash applet. No use of SliTaz
paul@7 4 # specific code since it may be used by other distros or emb systems.
pankso@4 5 #
pankso@4 6 # (C) 2014 Christophe Lincoln - BSD License.
pankso@4 7 #
pankso@4 8
pankso@4 9 sysconf="/etc/fbs.conf"
pankso@4 10 themes="/usr/share/fbs"
pankso@4 11 fifo="/fbs.fifo"
pankso@4 12
pankso@4 13 [ -f "${sysconf}" ] && . ${sysconf}
pankso@4 14 [ -f "fbs.conf" ] && . fbs.conf
pankso@4 15 [ "$2" ] && FBTHEME="$2"
pankso@4 16
pankso@4 17 # Functions
pankso@4 18
pankso@4 19 boldify() {
pankso@4 20 echo -e "\033[1m$@\033[0m"
pankso@4 21 }
pankso@4 22
pankso@4 23 usage() {
pankso@4 24 cat << EOT
pankso@4 25
pankso@4 26 Framebuffer Boot Splash utility
pankso@4 27
pankso@4 28 $(boldify "Usage:") $(basename $0) [command] [theme]
pankso@4 29
pankso@4 30 $(boldify "Commands:")
pankso@4 31 on Enable graphical boot
pankso@4 32 off Disable graphical boot
pankso@4 33 test Test a splash theme
pankso@4 34 themes List all installed themes
pankso@4 35 set-theme Change current theme
pankso@4 36 pack-theme Pack a system theme
pankso@4 37 add-theme Install a fbs-theme archive
pankso@4 38
pankso@4 39 EOT
pankso@4 40 }
pankso@4 41
pankso@4 42 check_root() {
pankso@4 43 if [ $(id -u) != "0" ]; then
paul@7 44 echo "Only root administrator can run fbs $1" && exit 1
pankso@4 45 fi
pankso@4 46 }
pankso@4 47
pankso@4 48 separator() {
pankso@4 49 echo "--------------------------------------"
pankso@4 50 }
pankso@4 51
pankso@4 52 set_theme() {
pankso@4 53 sed -i s'~FBTHEME=.*~FBTHEME=\"$new_theme\"~' /etc/fbs.conf
pankso@4 54 }
pankso@4 55
pankso@4 56 start_fbsplash() {
pankso@4 57 [ -x "$themes/$FBTHEME/init.sh" ] && \
pankso@4 58 ${themes}/${FBTHEME}/init.sh
pankso@4 59 mkfifo ${fifo}
pankso@4 60 fbsplash -c -f ${fifo} \
pankso@4 61 -s $themes/$FBTHEME/splash.ppm.gz \
pankso@4 62 -i $themes/$FBTHEME/splash.cfg &
pankso@4 63 }
pankso@4 64
pankso@4 65 # Commands
pankso@4 66
pankso@4 67 case "$1" in
pankso@4 68
pankso@4 69 on)
pankso@4 70 # Enable graphical boot
pankso@4 71 check_root
pankso@4 72 echo "Enabling SliTaz graphical boot..."
pankso@4 73 if ! grep -q "rcS > /dev/null 2>/dev/null" /etc/inittab; then
pankso@4 74 sed -i s'#rcS#rcS >/dev/null 2>/dev/null#' /etc/inittab
pankso@4 75 fi
pankso@4 76 sed -i s'/FBSPLASH=.*/FBSPLASH="on"/' /etc/fbs.conf ;;
pankso@4 77
pankso@4 78 off)
pankso@4 79 # Disable graphical boot
pankso@4 80 check_root
pankso@4 81 echo "Disabling SliTaz graphical boot..."
pankso@4 82 sed -i s'#rcS >/dev/null 2>/dev/null#rcS#' /etc/inittab
pankso@4 83 sed -i s'/FBSPLASH=.*/FBSPLASH="off"/' /etc/fbs.conf ;;
pankso@4 84
pankso@4 85 'test')
pankso@4 86 # Testsuite for fbs
pankso@4 87 reset && start_fbsplash
pankso@4 88 for p in 0 10 20 30 40 50 60 70 80 90 100
pankso@4 89 do
pankso@4 90 echo "$p" > ${fifo} && sleep 1
pankso@4 91 done #> /dev/null
pankso@4 92 echo "exit" > ${fifo}
pankso@4 93 clear && rm -f ${fifo};;
pankso@4 94
pankso@4 95 themes)
pankso@4 96 # List all themes
pankso@4 97 echo ""
pankso@4 98 boldify "Fbs themes list"
pankso@4 99 separator
pankso@4 100 cd ${themes}
pankso@4 101 ls -1 && echo "" ;;
pankso@4 102
pankso@4 103 set-theme)
pankso@4 104 check_root
pankso@4 105 new_theme="$2"
pankso@4 106 [ "$new_theme" ] || exit 0
pankso@4 107 [ -d "$themes/$new_theme" ] || exit 0
pankso@4 108 echo -n "Enabling fbs theme: $new_theme"
pankso@4 109 set_theme; status ;;
pankso@4 110
pankso@4 111 pack-theme)
pankso@4 112 # Pack a theme into .tar.gz
pankso@4 113 theme="$2"
pankso@4 114 tmp=fbs-theme-$theme
pankso@4 115 if [ ! -d "$themes/$theme" ]; then
pankso@4 116 echo "No theme found in: $themes/$theme"; exit 0
pankso@4 117 fi
pankso@4 118 echo -n "Creating fbs theme archive: $theme"
pankso@4 119 mkdir -p $tmp
pankso@4 120 cp -r $themes/$theme $tmp
pankso@4 121 cat > $tmp/README << EOT
pankso@4 122 Fbs theme - Framebuffer Splash boot artwork
pankso@4 123 $(separator)
pankso@4 124
pankso@4 125
pankso@4 126 This is a Busybox fbsplash theme created by $USER. To use it you can copy
pankso@4 127 files manually to $themes or use 'fbs add-theme'
pankso@4 128
pankso@4 129
pankso@4 130 $(separator)
pankso@4 131 EOT
pankso@4 132 busybox tar czf fbs-theme-$theme.tar.gz $tmp
pankso@4 133 rm -rf $tmp; status ;;
pankso@4 134
pankso@4 135 add-theme)
pankso@4 136 check_root
pankso@4 137 file=$2
pankso@4 138 if [ ! -f "$file" ]; then
pankso@4 139 echo "Missing theme archive: $file"; exit 0
pankso@4 140 fi
pankso@4 141 echo -n "Installing fbs theme: ${file%.tar.gz}"
pankso@4 142 tar xzf $file -C /tmp
pankso@4 143 rm /tmp/fbs-theme-*/README
pankso@4 144 cp -r /tmp/fbs-*/* ${themes}
pankso@4 145 status ;;
pankso@4 146
pankso@4 147 start) start_fbsplash ;;
pankso@4 148
pankso@4 149 *) usage ;;
pankso@4 150
pankso@4 151 esac
pankso@4 152 exit 0