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 |