slitaz-base-files annotate rootfs/lib/libtaz.sh @ rev 125
Add /lib/libtaz.sh
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Apr 12 21:53:58 2012 +0200 (2012-04-12) |
parents | |
children | 32c560235098 |
rev | line source |
---|---|
pankso@125 | 1 #!/bin/sh |
pankso@125 | 2 # |
pankso@125 | 3 # SliTaz Base functions used from boot scripts to end user tools. Use |
pankso@125 | 4 # gettext and not echo for messages. Keep output suitable for GTK boxes |
pankso@125 | 5 # and Ncurses dialog. LibTaz should not depend on any configuration file. |
pankso@125 | 6 # No bloated code here, function must be used by at least 3-4 tools. See |
pankso@125 | 7 # libtaz() for a list of functions and options or run: tazdev libtaz.sh |
pankso@125 | 8 # Libtaz is located in /lib/libtaz.sh since it is used when /usr may not |
pankso@125 | 9 # be mounted. |
pankso@125 | 10 # |
pankso@125 | 11 # Copyright (C) 2012 SliTaz GNU/Linux - BSD License |
pankso@125 | 12 # |
pankso@125 | 13 |
pankso@125 | 14 # Internationalization. |
pankso@125 | 15 . /usr/bin/gettext.sh |
pankso@125 | 16 TEXTDOMAIN='slitaz-base' |
pankso@125 | 17 export TEXTDOMAIN |
pankso@125 | 18 |
pankso@125 | 19 # Internal variables. |
pankso@125 | 20 okmsg="$(gettext "Done")" |
pankso@125 | 21 ermsg="$(gettext "Failed")" |
pankso@125 | 22 okcolor=32 |
pankso@125 | 23 ercolor=31 |
pankso@125 | 24 |
pankso@125 | 25 # Parse cmdline options. |
pankso@125 | 26 for opt in "$@" |
pankso@125 | 27 do |
pankso@125 | 28 case "$opt" in |
pankso@125 | 29 --raw-out) |
pankso@125 | 30 output="raw" |
pankso@125 | 31 done=" $okmsg" |
pankso@125 | 32 error=" $ermsg" ;; |
pankso@125 | 33 --gtk-out) |
pankso@125 | 34 # Yad/GTK TextView bold or colored text ? |
pankso@125 | 35 output="gtk" |
pankso@125 | 36 done=" $okmsg" |
pankso@125 | 37 error=" $ermsg" ;; |
pankso@125 | 38 --html-out) |
pankso@125 | 39 output="html" |
pankso@125 | 40 done=" <span class='done'>$okmsg</span>" |
pankso@125 | 41 error=" <span class='error'>$ermsg</span>" ;; |
pankso@125 | 42 esac |
pankso@125 | 43 done |
pankso@125 | 44 |
pankso@125 | 45 # Help and usage. |
pankso@125 | 46 libtaz() { |
pankso@125 | 47 cat << EOT |
pankso@125 | 48 |
pankso@125 | 49 Include this library in a script: |
pankso@125 | 50 . /usr/lib/slitaz/libtaz.sh |
pankso@125 | 51 |
pankso@125 | 52 Functions: |
pankso@125 | 53 status |
pankso@125 | 54 separator |
pankso@125 | 55 boldify string |
pankso@125 | 56 check_root |
pankso@125 | 57 |
pankso@125 | 58 Options: |
pankso@125 | 59 --raw-out |
pankso@125 | 60 --gtk-out |
pankso@125 | 61 --html-out |
pankso@125 | 62 |
pankso@125 | 63 EOT |
pankso@125 | 64 } |
pankso@125 | 65 |
pankso@125 | 66 # Return command status. Default to colored console output. |
pankso@125 | 67 status() { |
pankso@125 | 68 local check=$? |
pankso@125 | 69 if [ ! "$output" ]; then |
pankso@125 | 70 local cols=$(stty -a | head -n 1 | cut -d ";" -f 3 | awk '{print $2}') |
pankso@125 | 71 local scol=$(($cols - 10)) |
pankso@125 | 72 done="\\033[${scol}G[ \\033[1;${okcolor}m${okmsg}\\033[0;39m ]" |
pankso@125 | 73 error="\\033[${scol}G[ \\033[1;${ercolor}m${ermsg}\\033[0;39m ]" |
pankso@125 | 74 fi |
pankso@125 | 75 if [ $check = 0 ]; then |
pankso@125 | 76 echo -e "$done" |
pankso@125 | 77 else |
pankso@125 | 78 echo -e "$error" |
pankso@125 | 79 fi |
pankso@125 | 80 } |
pankso@125 | 81 |
pankso@125 | 82 # Line separator. |
pankso@125 | 83 separator() { |
pankso@125 | 84 local cols=$(stty -a | head -n 1 | cut -d ";" -f 3 | awk '{print $2}') |
pankso@125 | 85 for c in $(seq 1 $cols); do |
pankso@125 | 86 echo -n "=" |
pankso@125 | 87 done && echo "" |
pankso@125 | 88 } |
pankso@125 | 89 |
pankso@125 | 90 # Display a bold message. GTK Yad: Works only in --text="" |
pankso@125 | 91 boldify() { |
pankso@125 | 92 case $output in |
pankso@125 | 93 raw) echo "$1" ;; |
pankso@125 | 94 gtk) echo "<b>$1</b>" ;; |
pankso@125 | 95 html) echo "<strong>$1</strong>" ;; |
pankso@125 | 96 *) echo -e "\\033[1m${1}\\033[0m" ;; |
pankso@125 | 97 esac |
pankso@125 | 98 } |
pankso@125 | 99 |
pankso@125 | 100 # Check if user is logged as root. |
pankso@125 | 101 check_root() { |
pankso@125 | 102 if [ $(id -u) != 0 ]; then |
pankso@125 | 103 gettext "You must be root to execute:" && echo " $(basename $0) $@" |
pankso@125 | 104 exit 1 |
pankso@125 | 105 fi |
pankso@125 | 106 } |