diff --git a/bes.ini b/bes.ini index df55627..cbf374c 100644 --- a/bes.ini +++ b/bes.ini @@ -11,5 +11,5 @@ keywords = "bash, bes, build" [require] bes.ini = 1.1 -bes.echo = 1.1 -bes.install = 1.0 +bes.echo = 1.2 +bes.install = 1.1 diff --git a/dist/bes-build b/dist/bes-build index b6c50c4..d2cc452 100755 --- a/dist/bes-build +++ b/dist/bes-build @@ -1,6 +1,103 @@ #!/bin/bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# @author a-Sansara - https://git.pluie.org/meta-tech/bes-color +# @app bes-color +# @license GNU GPL v3 +# @date 2017-10-23 23:30:54 CET +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function bes.color.boot () { + BES_NOCOLOR=${BES_NOCOLOR:-0} + if [ "$BES_NOCOLOR" -eq 0 ]; then + # by convention all colors begins with 'C' uppercase + # followed by a name in lowercase + # background foreground + # R G B R G B + color.set "Chead" 53 114 160 195 223 255 + color.set "Cheadsep" 53 114 160 252 212 102 + # background + # R G B + color.bg "Cdone" 63 172 138 + color.bg "Cfail" 172 63 85 + # foreground + # R G B + color.fg "Ctitle" 133 92 181 + color.fg "Cheadline" 22 74 133 + color.fg "Csep" 80 80 80 + color.fg "Cerr" 194 48 64 + color.fg "Cval" 255 175 95 + color.fg "Ckey" 40 168 134 + color.fg "Caction" 106 183 241 + color.fg "Csymbol" 255 175 95 + color.fg "Citem" 92 147 181 + color.fg "Cusa" 255 172 0 + color.fg "Cspe" 255 214 166 + color.fg "Copt" 94 215 255 + color.fg "Ccom" 175 135 175 + color.fg "Ctext" 0 132 101 + color.fg "Cmeta" 39 100 170 + Coff="\\033[m" + fi +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function color.fg() +{ + local -n var=$1 + var="\033[1;38;2;$2;$3;$4m" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function color.bg() +{ + local -n var=$1 + var="\033[1;48;2;$2;$3;$4m" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function color.set() +{ + local -n var=$1 + var="\033[1;48;2;$2;$3;$4;1;38;2;$5;$6;$7m" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function color.rgb () +{ + local c=${3:-0} + local v=$1 + local -n r=${2}_r + local -n g=${2}_g + local -n b=${2}_b + if [ -z "$v" ]; then + r=$c + g=$c + b=$c + return + fi + r=${v%%;*} + [ "$v" = "$r" ] && v='' || v="${v#*;}" + if [ -z "$r" ]; then r=$c; fi + g=${v%%;*} + [ "$v" = "$g" ] && v='' || v="${v#*;}" + if [ -z "$g" ]; then g=$c; fi + b=${v%%;*} + if [ -z "$b" ]; then b=$c; fi +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function color.env () { + local -n var=${2:-shenv} + local v=ctx$1 + local ctxPROD="174 8 49" + local ctxINT="218 84 0" + local ctxDEV="218 159 0" + local ctxLOCAL="122 122 122" + if [ -z "${!v}" ]; then + v=ctxLOCAL + SHENV_CTX=LOCAL + fi + var=${!v} +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +bes.color.boot +# # @author a-Sansara - https://git.pluie.org/meta-tech/bes-echo # @app bes-echo # @license GNU GPL v3 @@ -9,80 +106,49 @@ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.echo.boot () { - BES_TERM_WIDTH=${BES_TERM_WIDTH:-105} - BES_NOCOLOR=${BES_NOCOLOR:-0} - - if [ "$BES_NOCOLOR" -eq 0 ]; then - Cok="\033[0;38;5;43m"; Cko="\033[0;38;5;217m" - Coff="\033[m"; Ctitle="\033[1;48;5;24;1;38;5;15m" - Cdone="\033[1;48;5;36;1;38;5;15m"; Cfail="\033[1;48;5;196;1;38;5;15m" - Cspe="\033[1;38;5;223m"; Citem="\033[1;38;5;214m" - Cval="\033[1;38;5;215m"; Cusa="\033[1;38;5;214m" - Cbra="\033[1;38;5;203m"; Crepo="\033[1;38;5;223m" - Cmeta="\033[1;38;5;30m"; Ctext="\033[1;38;5;30m" - Copt="\033[1;38;5;81m"; Csep="\033[1;38;5;241m" - Cerr="\033[1;38;5;196m"; Ccom="\033[0;38;5;139m" - Csection="\033[1;38;5;97m"; Caction="\033[0;38;5;37m" - fi + BES_TERM_WIDTH=${COLUMNS:-130} + BES_TERM_WIDTH=$(($BES_TERM_WIDTH - 20)) } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo () +function echo.msg () { - local msg=${1:-''} - local isAction=${2:-'0'} - local symbol=${3:-' *'} - if [ ! "$BES_NOCOLOR" = 1 ]; then - local c=" " - if [ -z "$isAction" ] || [ "$isAction" = 1 ]; then - c=$Caction - fi - if [ ! "$isAction" = 0 ]; then - c=" $Citem$symbol $c" - fi - echo -e " $c$msg$Coff" - else - if [ ! "$isAction" = 0 ]; then - msg=" $symbol $msg" - fi - echo -e "$msg" - fi + local c=${2:-} + local m=${1:-} + echo -e " $c$m$Coff" } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.action () +function echo.state () { - bes.echo "$1" 1 -} -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.title () -{ - echo - bes.echo " ${Citem}☪ ${Csection}$1 ${Cspe}$2${Coff}" - echo -} -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.keyval () -{ - local c=': ' - if [ ! "$BES_NOCOLOR" = 1 ]; then - c="$Citem: ${Cval}" - fi - local len="%-15s " -# printf "%s %s [UP]\n" $PROC_NAME "${line:${#PROC_NAME}}" - bes.echo "$(printf $len $1) $c$2 " 1 " " -} -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.state () -{ - local len=8 - printf "%0.s " $(seq 1 $(($BES_TERM_WIDTH-${len}))) + local len=14 + echo -en " $Csep" + printf "%0.s-" $(seq 1 $(($BES_TERM_WIDTH-${len}))) if [ "$1" = 0 ]; then - echo -e "${Cdone} OK ${Coff}" + echo -e "$Coff $Cdone OK $Coff\n" else - echo -e "${Cfail} KO ${Coff}" + echo -e "$Coff $Cfail KO $Coff\n" fi } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.rs () +function echo.action () +{ + local symbol=${3:-*} + local color=${4:-Citem} + echo -e " $Csymbol$symbol ${Caction}$1 ${!color}$2$Coff" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function echo.title () +{ + echo -e "\n $Csymbol☪ $Ctitle$1 $Coff$Cspe$2$Coff\n" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function echo.keyval () +{ + local len=${3:-20} + local c="$Ckey: ${Cval}" + echo -e " $Ckey $(printf "%-${len}s " "$1") ${c}${2} $Coff" +} +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +function echo.rs () { local rs=${1:-0} if [ "$rs" -eq 0 ]; then @@ -92,47 +158,39 @@ function bes.echo.rs () fi } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.error () +function echo.error () { + local leave=${2:-0} echo -e "\n${Cerr} error : ${Coff}\n\t$1 ${Coff}\n" + if [ "$leave" = "1" ]; then + exit 1; + fi } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.sepline () +function echo.sepline () { local char=${1:-'_'} local width=${2:-$BES_TERM_WIDTH} - echo -ne "${Csep} " + echo -ne "${Cheadline} " printf "%0.s$char" $(seq 1 $width) echo -e "${Coff}" } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.app () +function echo.app () { local msg=${1:-''} local version=${2:-''} local author=${3:-'a-Sansara'} + local license=${3:-'GNU GPL v3'} if [ ! -z "$2" ]; then msg="$msg ${Cval}v$version" fi - local len="$1${version}license : GNU GPL v3 author:$author" - bes.echo.sepline - echo -ne "\n $Ctitle $msg $Coff" + local len="$1${version}license : $license author:$author" + echo.sepline + echo -ne "\n $Chead $msg $Coff" printf "%0.s " $(seq 1 $(($BES_TERM_WIDTH-${#len}-15))) - echo -e " ${Cmeta}license : ${Coff}GNU GPL v3 ${Cmeta}author : ${Cval}$author" - bes.echo.sepline -} -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -function bes.echo.colormap () -{ - for fgbg in 38 48 ; do - for color in {0..256} ; do - echo -en "\e[${fgbg};5;${color}m ${color}\t\e[0m" - if [ $((($color + 1) % 7)) == 0 ] ; then - echo - fi - done - echo - done + echo -e " ${Cmeta}license : ${Coff}$license ${Cmeta}author : ${Cval}$author" + echo.sepline } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bes.echo.boot @@ -442,8 +500,10 @@ function bes.install () local url=${2} local path=${3:-/usr/local/bin} local done=1 - bes.echo.title "Installing $app ${Coff}in" "$path" - + echo.title "Installing $app ${Coff}in" "$path" + if [ -z "$app" ] || [ -s "$url" ]; then + echo.error "in bes.install : \$app '$app' & \$url '$url' are required" 1 + fi if [ -f "./$app" ]; then rm ./$app fi @@ -453,38 +513,38 @@ function bes.install () if [ -d $path ]; then sudo mv ./$app $path/$app local done=$? - bes.echo.state $done + echo.state $done else - bes.echo.error "install directory do not exists : ${Cspe}$path" + echo.error "install directory do not exists : ${Cspe}$path" fi else - bes.echo.error "can not download latest version of app $app. please check url : $url" + echo.error "can not download latest version of app $app. please check url : $url" fi - bes.echo.rs $done + echo.rs $done } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.build () { - bes.echo.title "building project" "$APP_NAME" + echo.title "building project" "$APP_NAME" if [ -d "$APP_DIR/src" ]; then if [ ! -d "$APP_DIR/dist" ]; then - bes.echo.action "creating dist directory" + echo.action "creating dist directory" mkdir $APP_DIR/dist - bes.echo.state $? + cho.state $? fi if [ -f "$APP_BIN" ]; then if [ "$1" = "backup" ] || [ "$1" = "-b" ]; then - bes.echo.action "backup last build to ${Coff}dist/$(date +%y%m%d)-$APP_NAME${Coff}" + echo.action "backup last build to ${Coff}dist/$(date +%y%m%d)-$APP_NAME${Coff}" mv $APP_BIN $APP_DIR/dist/$(date +%y%m%d)-$APP_NAME else - bes.echo.action "removing ${Coff}dist/$APP_NAME${Coff}" + echo.action "removing ${Coff}dist/$APP_NAME${Coff}" rm $APP_BIN fi - bes.echo.state $? + echo.state $? fi echo "#!/bin/bash" > $APP_BIN - bes.echo.action "reading ${Coff}dependencies" + echo.action "reading ${Coff}dependencies" if [ -d "$APP_DIR/vendor" ]; then for vendor in $(ls $APP_DIR/vendor/); do if [ "$vendor" != "." ] && [ "$vendor" != ".." ]; then @@ -494,7 +554,7 @@ function bes.build () local entrypath="$APP_DIR/vendor/$vendor/$project/src/$(basename $entry)" if [ -f "$entrypath" ] && [ "${entrypath: -3}" = ".sh" ]; then tail -n +2 "$entrypath" >> "$APP_BIN" - bes.echo " ${Cspe}- ${Cok}appending ${Cusa}$vendorName/$project/${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}appending ${Cusa}$vendorName/$project/${Coff}src/$(basename $entry)" fi done fi @@ -502,34 +562,34 @@ function bes.build () fi done else - bes.echo " no dependencies, did you forget to run bes-build update ?" + echo.msg " no dependencies, did you forget to run bes-build update ?" fi - bes.echo.state 0 + echo.state 0 - bes.echo.action "reading ${Coff}src/" + echo.action "reading ${Coff}src/" for entry in "$APP_DIR/src"/*.sh; do if [ "$(basename $entry)" != "main.sh" ]; then - bes.echo " ${Cspe}- ${Cok}appending ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}appending ${Coff}src/$(basename $entry)" tail -n +2 "$entry" >> "$APP_BIN" fi done if [ -f "$APP_DIR/src/main.sh" ]; then tail -n +2 "$APP_DIR/src/main.sh" >> "$APP_BIN" - bes.echo " ${Cspe}- ${Cok}appending ${Coff}src/main.sh" + echo.msg " ${Cspe}- ${Cok}appending ${Coff}src/main.sh" fi - bes.echo.state 0 - bes.echo.action "set execution mode" + echo.state 0 + echo.action "set execution mode" chmod +x $APP_BIN done=$? - bes.echo.state $done - bes.echo.rs $done + echo.state $done + echo.rs $done else - bes.echo.error "no src/ directory. exit" - bes.echo.state 1 + echo.error "no src/ directory. exit" + echo.state 1 fi } -BES_LIB="echo install ini dep1 dep2" +BES_LIB="color echo install ini dep1 dep2" BES_LOADED_LIB= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.inlist () @@ -559,11 +619,11 @@ function bes.loadExtDep () local vendor=${key%_*} local version=${!name} if [ ! "$vendor" = "bes" ]; then - bes.echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" + echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" if [ ! -d "$APP_DIR/vendor/$vendor" ]; then - bes.echo.action "creating vendor directory ${Cusa}$vendor" + echo.action "creating vendor directory ${Cusa}$vendor" mkdir -p "$APP_DIR/vendor/$vendor" - bes.echo.state $? + echo.state $? fi if [ "${version:0:4}" = "http" ]; then local req=${!name} @@ -580,13 +640,13 @@ function bes.loadExtDep () cd "$APP_DIR/vendor/$vendor/$project" git checkout $tag for entry in "$APP_DIR/vendor/$vendor/$project/src"/*.sh; do - bes.echo " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" # tail -n +2 "$entry" >> "$APP_BIN" done - bes.echo.state $? + echo.state $? fi fi - bes.echo.rs + echo.rs } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.loadDep () @@ -598,47 +658,47 @@ function bes.loadDep () local vendor=${key%_*} local version=${!name} if [ "$vendor" = "bes" ]; then - bes.echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" + echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" if bes.inlist "$project" "$BES_LIB"; then if bes.inlist "$project" "$BES_LOADED_LIB"; then - bes.echo.action "dependencies already loaded for ${Cusa}$project" - bes.echo + echo.action "dependencies already loaded for ${Cusa}$project" + echo else if [ "$bescheck" = "1" ]; then if [ ! -d "$APP_DIR/vendor/$vendor" ]; then - bes.echo.action "creating vendor directory ${Cusa}$vendor" + echo.action "creating vendor directory ${Cusa}$vendor" mkdir -p "$APP_DIR/vendor/$vendor" else - bes.echo.action "checking vendor directory ${Cusa}$vendor" + echo.action "checking vendor directory ${Cusa}$vendor" fi - bes.echo.state $? + echo.state $? bescheck=0 echo "[bes_vendor]" > $APP_DIR/vendor/.bes fi echo "$project = $version" >> $APP_DIR/vendor/.bes cd "$APP_DIR/vendor/$vendor" - bes.echo.action "updating repository $Cusa$vendor.$project ${Coff}:$Cusa $version" + echo.action "updating repository $Cusa$vendor.$project ${Coff}:$Cusa $version" if [ ! -d "$project" ]; then git clone -q "https://git.pluie.org/meta-tech/$vendor-$project" "$project" 2>&1 >/dev/null - #~ bes.echo.state $? + #~ echo.state $? cd $project else cd $project git fetch --all -q 2>&1 >/dev/null - #~ bes.echo.state $? + #~ echo.state $? fi - #~ bes.echo.action "checkout to version $Cusa$version" + #~ echo.action "checkout to version $Cusa$version" local branch=$(git branch --no-color | grep \* | cut -d ' ' -f2-) # branch=${branch:5: -3} if [ "$branch" != "$version" ]; then git checkout -q $version 2>&1 >/dev/null fi - bes.echo.state $? + echo.state $? for entry in "$APP_DIR/vendor/$vendor/$project/src"/*.sh; do - bes.echo " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" # tail -n +2 "$entry" >> "$APP_BIN" done - bes.echo.state $? + echo.state $? bes.addLoadedLib $project bes.ini "$APP_DIR/vendor/$vendor/$project/bes.ini" require -p bes$project -b 1 local suballvarname=bes${project}_ALL_VARS @@ -652,8 +712,8 @@ function bes.loadDep () # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.update () { - bes.echo.title "Reading Project" $APP_NAME - bes.echo.keyval path $APP_DIR + echo.title "Reading Project" $APP_NAME + echo.keyval path $APP_DIR if [ -f $APP_DIR/bes.ini ]; then bes.ini $APP_DIR/bes.ini -p bes -b 1 @@ -663,7 +723,7 @@ function bes.update () for key in $keys; do value="bes_project_$key" if [ ! -z "${!value}" ]; then - bes.echo.keyval $key "${!value}" + echo.keyval $key "${!value}" fi done @@ -682,10 +742,10 @@ function bes.update () local key="" local bescheck=1; if [ ! -z "${bes_ALL_VARS}" ]; then - bes.echo.title "Checking Dependencies" + echo.title "Checking Dependencies" for name in ${bes_ALL_VARS}; do key=${name:${#prefix}+1} - bes.echo.keyval ${key//_/.} ${!name} + echo.keyval ${key//_/.} ${!name} done echo for name in ${bes_ALL_VARS}; do @@ -695,8 +755,8 @@ function bes.update () fi else echo - bes.echo ' no bes.ini file for your project' - bes.echo.state + echo.msg ' no bes.ini file for your project' + echo.state fi } @@ -708,7 +768,7 @@ function bes.usage () ${Cspe}\t$APP_NAME ${Copt} ${Ccom}\tBuild current project and backup existing build ${Cspe}\t$APP_NAME ${Copt}-b${Ctext}, ${Copt}backup - ${Ccom}\tInstall or update $APP_NAME on specified BINDIR directory or in /etc/local/bin directory + ${Ccom}\tInstall or update $APP_NAME on specified BINDIR directory or in /usr/local/bin directory ${Cspe}\t$APP_NAME ${Copt}-i${Ctext}, ${Copt}install ${Copt}[ ${Ctext}BINDIR${Copt} ] ${Ccom}\tDisplay program version ${Cspe}\t$APP_NAME ${Copt}-v${Ctext}, ${Copt}version @@ -725,7 +785,7 @@ function bes.usage () # @date 2017-06-16 04:38:52 CET # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - BES_VERSION=0.7 + BES_VERSION=0.8 BES_NAME="bes-build" BES_URL="https://git.pluie.org/meta-tech/$BES_NAME/raw/latest/dist/$BES_NAME" APP_DIR=$(pwd) @@ -738,7 +798,7 @@ function bes.main () if [ "$1" = "version" ] || [ "$1" = "-v" ]; then echo $BES_VERSION else - bes.echo.app "$BES_NAME" "$BES_VERSION" + echo.app "$BES_NAME" "$BES_VERSION" echo if [ "$1" = "install" ] || [ "$1" = "-i" ]; then bes.install "$BES_NAME" "$BES_URL" "$2" diff --git a/src/build.sh b/src/build.sh index 06cbc70..3bff0a1 100644 --- a/src/build.sh +++ b/src/build.sh @@ -3,25 +3,25 @@ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.build () { - bes.echo.title "building project" "$APP_NAME" + echo.title "building project" "$APP_NAME" if [ -d "$APP_DIR/src" ]; then if [ ! -d "$APP_DIR/dist" ]; then - bes.echo.action "creating dist directory" + echo.action "creating dist directory" mkdir $APP_DIR/dist - bes.echo.state $? + cho.state $? fi if [ -f "$APP_BIN" ]; then if [ "$1" = "backup" ] || [ "$1" = "-b" ]; then - bes.echo.action "backup last build to ${Coff}dist/$(date +%y%m%d)-$APP_NAME${Coff}" + echo.action "backup last build to ${Coff}dist/$(date +%y%m%d)-$APP_NAME${Coff}" mv $APP_BIN $APP_DIR/dist/$(date +%y%m%d)-$APP_NAME else - bes.echo.action "removing ${Coff}dist/$APP_NAME${Coff}" + echo.action "removing ${Coff}dist/$APP_NAME${Coff}" rm $APP_BIN fi - bes.echo.state $? + echo.state $? fi echo "#!/bin/bash" > $APP_BIN - bes.echo.action "reading ${Coff}dependencies" + echo.action "reading ${Coff}dependencies" if [ -d "$APP_DIR/vendor" ]; then for vendor in $(ls $APP_DIR/vendor/); do if [ "$vendor" != "." ] && [ "$vendor" != ".." ]; then @@ -31,7 +31,7 @@ function bes.build () local entrypath="$APP_DIR/vendor/$vendor/$project/src/$(basename $entry)" if [ -f "$entrypath" ] && [ "${entrypath: -3}" = ".sh" ]; then tail -n +2 "$entrypath" >> "$APP_BIN" - bes.echo " ${Cspe}- ${Cok}appending ${Cusa}$vendorName/$project/${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}appending ${Cusa}$vendorName/$project/${Coff}src/$(basename $entry)" fi done fi @@ -39,29 +39,29 @@ function bes.build () fi done else - bes.echo " no dependencies, did you forget to run bes-build update ?" + echo.msg " no dependencies, did you forget to run bes-build update ?" fi - bes.echo.state 0 + echo.state 0 - bes.echo.action "reading ${Coff}src/" + echo.action "reading ${Coff}src/" for entry in "$APP_DIR/src"/*.sh; do if [ "$(basename $entry)" != "main.sh" ]; then - bes.echo " ${Cspe}- ${Cok}appending ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}appending ${Coff}src/$(basename $entry)" tail -n +2 "$entry" >> "$APP_BIN" fi done if [ -f "$APP_DIR/src/main.sh" ]; then tail -n +2 "$APP_DIR/src/main.sh" >> "$APP_BIN" - bes.echo " ${Cspe}- ${Cok}appending ${Coff}src/main.sh" + echo.msg " ${Cspe}- ${Cok}appending ${Coff}src/main.sh" fi - bes.echo.state 0 - bes.echo.action "set execution mode" + echo.state 0 + echo.action "set execution mode" chmod +x $APP_BIN done=$? - bes.echo.state $done - bes.echo.rs $done + echo.state $done + echo.rs $done else - bes.echo.error "no src/ directory. exit" - bes.echo.state 1 + echo.error "no src/ directory. exit" + echo.state 1 fi } diff --git a/src/main.sh b/src/main.sh index ebcd6a8..1c671a3 100755 --- a/src/main.sh +++ b/src/main.sh @@ -7,7 +7,7 @@ # @date 2017-06-16 04:38:52 CET # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - BES_VERSION=0.7 + BES_VERSION=0.8 BES_NAME="bes-build" BES_URL="https://git.pluie.org/meta-tech/$BES_NAME/raw/latest/dist/$BES_NAME" APP_DIR=$(pwd) @@ -20,7 +20,7 @@ function bes.main () if [ "$1" = "version" ] || [ "$1" = "-v" ]; then echo $BES_VERSION else - bes.echo.app "$BES_NAME" "$BES_VERSION" + echo.app "$BES_NAME" "$BES_VERSION" echo if [ "$1" = "install" ] || [ "$1" = "-i" ]; then bes.install "$BES_NAME" "$BES_URL" "$2" diff --git a/src/update.sh b/src/update.sh index 736d0f4..93aa17d 100644 --- a/src/update.sh +++ b/src/update.sh @@ -1,6 +1,6 @@ #!/bin/bash -BES_LIB="echo install ini dep1 dep2" +BES_LIB="color echo install ini dep1 dep2" BES_LOADED_LIB= # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.inlist () @@ -30,11 +30,11 @@ function bes.loadExtDep () local vendor=${key%_*} local version=${!name} if [ ! "$vendor" = "bes" ]; then - bes.echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" + echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" if [ ! -d "$APP_DIR/vendor/$vendor" ]; then - bes.echo.action "creating vendor directory ${Cusa}$vendor" + echo.action "creating vendor directory ${Cusa}$vendor" mkdir -p "$APP_DIR/vendor/$vendor" - bes.echo.state $? + echo.state $? fi if [ "${version:0:4}" = "http" ]; then local req=${!name} @@ -51,13 +51,13 @@ function bes.loadExtDep () cd "$APP_DIR/vendor/$vendor/$project" git checkout $tag for entry in "$APP_DIR/vendor/$vendor/$project/src"/*.sh; do - bes.echo " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" # tail -n +2 "$entry" >> "$APP_BIN" done - bes.echo.state $? + echo.state $? fi fi - bes.echo.rs + echo.rs } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.loadDep () @@ -69,47 +69,47 @@ function bes.loadDep () local vendor=${key%_*} local version=${!name} if [ "$vendor" = "bes" ]; then - bes.echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" + echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}" if bes.inlist "$project" "$BES_LIB"; then if bes.inlist "$project" "$BES_LOADED_LIB"; then - bes.echo.action "dependencies already loaded for ${Cusa}$project" - bes.echo + echo.action "dependencies already loaded for ${Cusa}$project" + echo else if [ "$bescheck" = "1" ]; then if [ ! -d "$APP_DIR/vendor/$vendor" ]; then - bes.echo.action "creating vendor directory ${Cusa}$vendor" + echo.action "creating vendor directory ${Cusa}$vendor" mkdir -p "$APP_DIR/vendor/$vendor" else - bes.echo.action "checking vendor directory ${Cusa}$vendor" + echo.action "checking vendor directory ${Cusa}$vendor" fi - bes.echo.state $? + echo.state $? bescheck=0 echo "[bes_vendor]" > $APP_DIR/vendor/.bes fi echo "$project = $version" >> $APP_DIR/vendor/.bes cd "$APP_DIR/vendor/$vendor" - bes.echo.action "updating repository $Cusa$vendor.$project ${Coff}:$Cusa $version" + echo.action "updating repository $Cusa$vendor.$project ${Coff}:$Cusa $version" if [ ! -d "$project" ]; then git clone -q "https://git.pluie.org/meta-tech/$vendor-$project" "$project" 2>&1 >/dev/null - #~ bes.echo.state $? + #~ echo.state $? cd $project else cd $project git fetch --all -q 2>&1 >/dev/null - #~ bes.echo.state $? + #~ echo.state $? fi - #~ bes.echo.action "checkout to version $Cusa$version" + #~ echo.action "checkout to version $Cusa$version" local branch=$(git branch --no-color | grep \* | cut -d ' ' -f2-) # branch=${branch:5: -3} if [ "$branch" != "$version" ]; then git checkout -q $version 2>&1 >/dev/null fi - bes.echo.state $? + echo.state $? for entry in "$APP_DIR/vendor/$vendor/$project/src"/*.sh; do - bes.echo " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" + echo.msg " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)" # tail -n +2 "$entry" >> "$APP_BIN" done - bes.echo.state $? + echo.state $? bes.addLoadedLib $project bes.ini "$APP_DIR/vendor/$vendor/$project/bes.ini" require -p bes$project -b 1 local suballvarname=bes${project}_ALL_VARS @@ -123,8 +123,8 @@ function bes.loadDep () # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function bes.update () { - bes.echo.title "Reading Project" $APP_NAME - bes.echo.keyval path $APP_DIR + echo.title "Reading Project" $APP_NAME + echo.keyval path $APP_DIR if [ -f $APP_DIR/bes.ini ]; then bes.ini $APP_DIR/bes.ini -p bes -b 1 @@ -134,7 +134,7 @@ function bes.update () for key in $keys; do value="bes_project_$key" if [ ! -z "${!value}" ]; then - bes.echo.keyval $key "${!value}" + echo.keyval $key "${!value}" fi done @@ -153,10 +153,10 @@ function bes.update () local key="" local bescheck=1; if [ ! -z "${bes_ALL_VARS}" ]; then - bes.echo.title "Checking Dependencies" + echo.title "Checking Dependencies" for name in ${bes_ALL_VARS}; do key=${name:${#prefix}+1} - bes.echo.keyval ${key//_/.} ${!name} + echo.keyval ${key//_/.} ${!name} done echo for name in ${bes_ALL_VARS}; do @@ -166,7 +166,7 @@ function bes.update () fi else echo - bes.echo ' no bes.ini file for your project' - bes.echo.state + echo.msg ' no bes.ini file for your project' + echo.state fi } diff --git a/src/usage.sh b/src/usage.sh index ef69977..c4fe415 100644 --- a/src/usage.sh +++ b/src/usage.sh @@ -8,7 +8,7 @@ function bes.usage () ${Cspe}\t$APP_NAME ${Copt} ${Ccom}\tBuild current project and backup existing build ${Cspe}\t$APP_NAME ${Copt}-b${Ctext}, ${Copt}backup - ${Ccom}\tInstall or update $APP_NAME on specified BINDIR directory or in /etc/local/bin directory + ${Ccom}\tInstall or update $APP_NAME on specified BINDIR directory or in /usr/local/bin directory ${Cspe}\t$APP_NAME ${Copt}-i${Ctext}, ${Copt}install ${Copt}[ ${Ctext}BINDIR${Copt} ] ${Ccom}\tDisplay program version ${Cspe}\t$APP_NAME ${Copt}-v${Ctext}, ${Copt}version