2017-05-14 01:13:11 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2017-07-06 21:16:57 +00:00
|
|
|
BES_LIB="echo install ini"
|
2017-05-14 01:13:11 +00:00
|
|
|
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-07-06 21:16:57 +00:00
|
|
|
function bes.inlist ()
|
2017-05-14 01:13:11 +00:00
|
|
|
{
|
|
|
|
local rs=1
|
|
|
|
if [[ "$2" =~ (^|[[:space:]])"$1"($|[[:space:]]) ]] ; then
|
|
|
|
rs=0
|
|
|
|
fi
|
|
|
|
return $rs
|
|
|
|
}
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-07-06 21:16:57 +00:00
|
|
|
function bes.update ()
|
2017-05-14 01:13:11 +00:00
|
|
|
{
|
|
|
|
bes.echo.title "Reading Project" $APP_NAME
|
|
|
|
bes.echo.keyval path $APP_DIR
|
|
|
|
|
2017-07-06 21:16:57 +00:00
|
|
|
if [ -f $APP_DIR/bes.ini ]; then
|
|
|
|
bes.ini $APP_DIR/bes.ini -p bes -b 1
|
|
|
|
|
|
|
|
local keys="vendor name version license author"
|
|
|
|
local value=""
|
|
|
|
for key in $keys; do
|
|
|
|
value="bes_project_$key"
|
|
|
|
if [ ! -z "${!value}" ]; then
|
|
|
|
bes.echo.keyval $key "${!value}"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
bes.ini "$APP_DIR/bes.ini" require -p bes -b 1
|
|
|
|
local prefix="bes_require"
|
|
|
|
local key=""
|
|
|
|
local bescheck=1;
|
|
|
|
if [ ! -z "${bes_ALL_VARS}" ]; then
|
|
|
|
bes.echo.title "Checking Dependencies"
|
|
|
|
for name in ${bes_ALL_VARS}; do
|
|
|
|
key=${name:${#prefix}+1}
|
|
|
|
bes.echo.keyval ${key//_/.} ${!name}
|
|
|
|
done
|
2017-05-14 01:13:11 +00:00
|
|
|
echo
|
2017-07-06 21:16:57 +00:00
|
|
|
for name in ${bes_ALL_VARS}; do
|
|
|
|
key=${name:${#prefix}+1}
|
|
|
|
bes.echo.title "Loading" "${key//_/.}${Cusa} ${!name}${Coff}"
|
|
|
|
local project=${key#*_}
|
|
|
|
local vendor=${key%_*}
|
|
|
|
local version=${!name}
|
|
|
|
bes.inlist "$project" "$BES_LIB"
|
|
|
|
if [ "$vendor" = "bes" ]; then
|
|
|
|
if bes.inlist "$project" "$BES_LIB"; then
|
|
|
|
if [ "$bescheck" = "1" ]; then
|
|
|
|
if [ ! -d "$APP_DIR/vendor/$vendor" ]; then
|
|
|
|
bes.echo.action "creating vendor directory ${Cusa}$vendor"
|
|
|
|
mkdir -p "$APP_DIR/vendor/$vendor"
|
|
|
|
else
|
|
|
|
bes.echo.action "checking vendor directory ${Cusa}$vendor"
|
|
|
|
fi
|
|
|
|
bes.echo.state $?
|
|
|
|
bescheck=0
|
|
|
|
fi
|
|
|
|
cd "$APP_DIR/vendor/$vendor"
|
|
|
|
bes.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 $?
|
|
|
|
cd $project
|
|
|
|
else
|
|
|
|
cd $project
|
|
|
|
git fetch --all -q 2>&1 >/dev/null
|
|
|
|
#~ bes.echo.state $?
|
|
|
|
fi
|
|
|
|
#~ bes.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 $?
|
|
|
|
for entry in "$APP_DIR/vendor/$vendor/$project/src"/*.sh; do
|
|
|
|
bes.echo " ${Cspe}- ${Cok}set for autoloading ${Coff}src/$(basename $entry)"
|
|
|
|
# tail -n +2 "$entry" >> "$APP_BIN"
|
|
|
|
done
|
|
|
|
bes.echo.state $?
|
|
|
|
fi
|
|
|
|
else
|
2017-05-14 01:13:11 +00:00
|
|
|
if [ ! -d "$APP_DIR/vendor/$vendor" ]; then
|
|
|
|
bes.echo.action "creating vendor directory ${Cusa}$vendor"
|
|
|
|
mkdir -p "$APP_DIR/vendor/$vendor"
|
2017-07-06 21:16:57 +00:00
|
|
|
bes.echo.state $?
|
2017-05-14 01:13:11 +00:00
|
|
|
fi
|
2017-07-06 21:16:57 +00:00
|
|
|
if [ "${version:0:4}" = "http" ]; then
|
|
|
|
local req=${!name}
|
|
|
|
local path=${req#*:}
|
|
|
|
local tag=${req##*:}
|
|
|
|
local repo=${req%:*}
|
|
|
|
echo "$APP_DIR/vendor/$vendor/$project"
|
|
|
|
echo $(pwd)
|
|
|
|
if [ ! -d "$APP_DIR/vendor/$vendor/$project" ]; then
|
|
|
|
mkdir "$APP_DIR/vendor/$vendor"
|
|
|
|
cd $_
|
|
|
|
git clone $repo $project
|
|
|
|
fi
|
|
|
|
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)"
|
|
|
|
# tail -n +2 "$entry" >> "$APP_BIN"
|
|
|
|
done
|
|
|
|
bes.echo.state $?
|
2017-05-14 01:13:11 +00:00
|
|
|
fi
|
|
|
|
fi
|
2017-07-06 21:16:57 +00:00
|
|
|
bes.echo.rs
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
bes.echo ' no bes.ini file for your project'
|
|
|
|
bes.echo.state
|
2017-05-14 01:13:11 +00:00
|
|
|
fi
|
|
|
|
}
|