seb annotate libseb.sh @ rev 26
Add kernel config example and a precompiled bzImage
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Mar 13 16:42:29 2017 +0100 (2017-03-13) |
parents | 052432697dd3 |
children | 3fbcae08e9d8 |
rev | line source |
---|---|
pankso@4 | 1 #!/bin/sh |
pankso@4 | 2 # |
pankso@4 | 3 # libseb.sh: Simple functions without gettext for seb cmdline tools |
pankso@4 | 4 # |
pankso@4 | 5 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License |
pankso@4 | 6 # |
pankso@4 | 7 |
pankso@4 | 8 # Parse cmdline options and store values in a variable. |
pankso@4 | 9 for opt in "$@"; do |
pankso@4 | 10 opt_name="${opt%%=*}" |
pankso@4 | 11 opt_name="$(echo -n "${opt_name#--}" | tr -c 'a-zA-Z0-9' '_')" |
pankso@4 | 12 case "$opt" in |
pankso@4 | 13 --*=*) export $opt_name="${opt#*=}" ;; |
pankso@4 | 14 --*) export $opt_name="yes" ;; |
pankso@4 | 15 esac |
pankso@4 | 16 done |
pankso@4 | 17 |
paul@14 | 18 # Exit if command returns 1 |
pankso@4 | 19 check() { |
pankso@24 | 20 local code="$?" |
pankso@24 | 21 case "$output" in |
pankso@24 | 22 html) |
pankso@24 | 23 case "$code" in |
pankso@24 | 24 0) echo " <span style='color: green;'>Done</span>" ;; |
pankso@24 | 25 1) |
pankso@24 | 26 echo " <span style='color: red;'>--> Error</span>" |
pankso@24 | 27 exit 1 ;; |
pankso@24 | 28 esac ;; |
pankso@24 | 29 *) |
pankso@24 | 30 case "$code" in |
pankso@24 | 31 0) info 32 "Done" ;; |
pankso@24 | 32 1) colorize 31 "--> Error" && exit 1 ;; |
pankso@24 | 33 esac ;; |
pankso@4 | 34 esac |
pankso@4 | 35 } |
pankso@4 | 36 |
pankso@4 | 37 # Check if user is logged as root |
pankso@4 | 38 check_root() { |
pankso@4 | 39 if [ $(id -u) -ne 0 ]; then |
pankso@4 | 40 echo "You must be root to execute: $(basename $0) $@"; exit 1 |
pankso@4 | 41 fi |
pankso@4 | 42 } |
pankso@4 | 43 |
pankso@4 | 44 # Get console cols |
pankso@4 | 45 get_cols() { |
pankso@4 | 46 if ! stty size | cut -d " " -f 2; then |
pankso@4 | 47 echo 80 |
pankso@4 | 48 fi |
pankso@4 | 49 } |
pankso@4 | 50 |
pankso@4 | 51 # Indent text |
pankso@4 | 52 indent() { |
pankso@4 | 53 local in="$1" |
pankso@4 | 54 shift |
pankso@24 | 55 case "$output" in |
pankso@24 | 56 html) echo ": $@" ;; |
pankso@24 | 57 *) echo -e "\033["${in}"G $@" ;; |
pankso@24 | 58 esac |
pankso@4 | 59 } |
pankso@4 | 60 |
pankso@4 | 61 # Display a bold message |
pankso@4 | 62 boldify() { |
pankso@4 | 63 case "$output" in |
pankso@4 | 64 html) echo "<strong>$@</strong>" ;; |
pankso@4 | 65 *) echo -e "\\033[1m$@\\033[0m" ;; |
pankso@4 | 66 esac |
pankso@4 | 67 } |
pankso@4 | 68 |
pankso@4 | 69 # Colorize message |
pankso@4 | 70 colorize() { |
pankso@4 | 71 : ${color=$1} |
pankso@4 | 72 shift |
pankso@24 | 73 case "$output" in |
pankso@24 | 74 html|raw) echo "$@" ;; |
pankso@24 | 75 *) |
pankso@24 | 76 case "$color" in |
pankso@24 | 77 0*) echo -e "\\033[${color:-38}m$@\\033[39m" ;; |
pankso@24 | 78 *) echo -e "\\033[1;${color:-38}m$@\\033[0;39m" ;; |
pankso@24 | 79 esac ;; |
pankso@4 | 80 esac; unset color |
pankso@4 | 81 } |
pankso@4 | 82 |
pankso@4 | 83 # Last command status |
pankso@4 | 84 status() { |
pankso@4 | 85 local code="$?" |
pankso@24 | 86 case "$output" in |
pankso@24 | 87 html) |
pankso@24 | 88 case "$code" in |
pankso@24 | 89 0) echo " <span style='color: green;'>Done</span>" ;; |
pankso@24 | 90 1) echo " <span style='color: red;'>Fail</span>" ;; |
pankso@24 | 91 esac ;; |
pankso@24 | 92 *) |
pankso@24 | 93 case "$code" in |
pankso@24 | 94 0) info 32 "Done" ;; |
pankso@24 | 95 1) info 31 "Fail" ;; |
pankso@24 | 96 esac ;; |
pankso@4 | 97 esac |
pankso@4 | 98 } |
pankso@4 | 99 |
pankso@4 | 100 # Print info a la status way: info [color] [content] |
pankso@4 | 101 info() { |
pankso@4 | 102 local info="$2" |
pankso@24 | 103 case "$output" in |
pankso@24 | 104 html) echo " <span class='info'>$info</span>" ;; |
pankso@24 | 105 *) |
pankso@24 | 106 local char="$(echo $info | wc -L)" |
pankso@24 | 107 local in=$((7 + ${char})) |
pankso@24 | 108 indent $(($(get_cols) - ${in})) "[ $(colorize $1 $info) ]" ;; |
pankso@24 | 109 esac |
pankso@4 | 110 } |
pankso@4 | 111 |
pankso@4 | 112 # Line separator |
pankso@4 | 113 separator() { |
pankso@4 | 114 case "$output" in |
pankso@4 | 115 html) echo -n '<hr />' ;; |
pankso@4 | 116 *) printf "%$(get_cols)s\n" | tr ' ' "${1:-=}" ;; |
pankso@4 | 117 esac |
pankso@4 | 118 } |
pankso@4 | 119 |
pankso@4 | 120 title() { |
pankso@4 | 121 echo ""; colorize 33 "$@"; separator |
pankso@4 | 122 } |
pankso@4 | 123 |
pankso@4 | 124 footer() { |
pankso@4 | 125 separator "-"; [ "$1" ] && colorize 035 "$1"; echo "" |
pankso@4 | 126 } |
pankso@4 | 127 |
pankso@4 | 128 # Testsuite |
pankso@4 | 129 if [ $(basename $0) == "libseb.sh" ]; then |
pankso@4 | 130 title "libseb.sh title()" |
pankso@4 | 131 echo -n "Checking status() 0"; status |
pankso@4 | 132 echo -n "Checking status() 1"; ls /a/a 2>/dev/null; status |
pankso@4 | 133 echo -n "Checking info()"; info 035 "3.4K" |
pankso@4 | 134 echo -n "Checking colorize()"; colorize 33 " message" |
pankso@4 | 135 echo -n "Checking colorize()"; colorize 033 " message" |
pankso@4 | 136 echo "Checking footer()"; footer "Footer message" |
pankso@4 | 137 fi |