First commit
This commit is contained in:
50
scripts/common/detect.sh
Normal file
50
scripts/common/detect.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
[ -n "${_DETECT_SH_}" ] && return || readonly _DETECT_SH_=1
|
||||
[ -n "${_VERBOSE_}" ] && echo "-- INCLUDE: detect.sh"
|
||||
|
||||
_detect() {
|
||||
cmd="$1"; optional="$2"; verbose="$3";
|
||||
[ -n "$verbose" ] || [ -z "${_VERBOSE_}" ] || verbose=1;
|
||||
if ! type "$cmd" &> /dev/null; then
|
||||
[ -z "$verbose" ] || echo "-- DETECT: $cmd not found"
|
||||
if [ -z "$optional" ]; then
|
||||
echo >&2 "-- DETECT: $cmd not found, but required"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
[ -z "$verbose" ] || echo "-- DETECT: $cmd found"
|
||||
eval "${cmd}_FOUND=1"
|
||||
fi
|
||||
}
|
||||
|
||||
_detect_fn() {
|
||||
[ `type -t $1`"" == "function" ]
|
||||
}
|
||||
|
||||
if [ -n "${_TEST_}" ]; then
|
||||
echo "-- TEST_BEG: _detect"
|
||||
_CMDS=(ls none)
|
||||
for _cmd in "${_CMDS[@]}"; do
|
||||
_detect "$_cmd" 1
|
||||
|
||||
_CMD_FOUND="${_cmd}_FOUND"
|
||||
if [ -n "${!_CMD_FOUND}" ]; then
|
||||
echo "-- ${_CMD_FOUND} set"
|
||||
else
|
||||
echo "-- ${_CMD_FOUND} unset"
|
||||
fi
|
||||
done
|
||||
echo "-- TEST_END: _detect"
|
||||
|
||||
echo "-- TEST_BEG: _detect_fn"
|
||||
_FUNCS=(_detect none)
|
||||
for _fn in "${_FUNCS[@]}"; do
|
||||
if _detect_fn "$_fn"; then
|
||||
echo "-- $_fn function exists"
|
||||
else
|
||||
echo "-- $_fn function not exist"
|
||||
fi
|
||||
done
|
||||
echo "-- TEST_END: _detect_fn"
|
||||
fi
|
||||
66
scripts/common/echo.sh
Normal file
66
scripts/common/echo.sh
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
[ -n "${_ECHO_SH_}" ] && return || readonly _ECHO_SH_=1
|
||||
[ -n "${_VERBOSE_}" ] && echo "-- INCLUDE: echo.sh"
|
||||
|
||||
# if [ -n "$SCRIPTS_DIR" ]; then
|
||||
# source "$SCRIPTS_DIR/common/echo.sh"
|
||||
# else
|
||||
# source "$(dirname "$0")/echo.sh"
|
||||
# fi
|
||||
|
||||
ECHO="echo"
|
||||
|
||||
# task colors
|
||||
COLOR_STRONG="1;35" # Magenta
|
||||
COLOR_INFO="1;34" # Blue
|
||||
COLOR_DONE="1;32" # Green
|
||||
COLOR_ERROR="1;31" # Red
|
||||
# action colors
|
||||
COLOR_INFO_NORMAL="34"
|
||||
COLOR_DONE_NORMAL="32"
|
||||
COLOR_ERROR_NORMAL="31"
|
||||
|
||||
_echo_() {
|
||||
text="$1"; shift; options="$1"; shift;
|
||||
[ -z "$options" ] && options="$COLOR_STRONG";
|
||||
$ECHO "\033[${options}m${text}\033[0m"
|
||||
}
|
||||
|
||||
_echo_e_() {
|
||||
text="$1"; shift; options="$1"; shift;
|
||||
[ -z "$options" ] && options="$COLOR_ERROR";
|
||||
$ECHO >&2 "\033[${options}m${text}\033[0m"
|
||||
}
|
||||
|
||||
_echo() {
|
||||
$ECHO "$@"
|
||||
}
|
||||
|
||||
_echo_s() {
|
||||
_echo_ "$1" "$COLOR_STRONG"
|
||||
}
|
||||
|
||||
_echo_i() {
|
||||
_echo_ "$1" "$COLOR_INFO"
|
||||
}
|
||||
|
||||
_echo_d() {
|
||||
_echo_ "$1" "$COLOR_DONE"
|
||||
}
|
||||
|
||||
_echo_e() {
|
||||
_echo_e_ "$1" "$COLOR_ERROR"
|
||||
}
|
||||
|
||||
_echo_in() {
|
||||
_echo_ "$1" "$COLOR_INFO_NORMAL"
|
||||
}
|
||||
|
||||
_echo_dn() {
|
||||
_echo_ "$1" "$COLOR_DONE_NORMAL"
|
||||
}
|
||||
|
||||
_echo_en() {
|
||||
_echo_e_ "$1" "$COLOR_ERROR_NORMAL"
|
||||
}
|
||||
62
scripts/common/host.sh
Executable file
62
scripts/common/host.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
[ -n "${_HOST_SH_}" ] && return || readonly _HOST_SH_=1
|
||||
[ -n "${_VERBOSE_}" ] && echo "-- INCLUDE: host.sh"
|
||||
|
||||
_host_contains_() {
|
||||
[ `echo $1 | grep -c "$2"` -gt 0 ]
|
||||
}
|
||||
|
||||
if _host_contains_ "$OS" "Windows_NT"; then
|
||||
|
||||
HOST_OS="Win"
|
||||
|
||||
if _host_contains_ "$PROCESSOR_ARCHITEW6432" "AMD64"; then
|
||||
HOST_ARCH="x64"
|
||||
else
|
||||
if _host_contains_ "$PROCESSOR_ARCHITECTURE" "AMD64"; then
|
||||
HOST_ARCH="x64"
|
||||
elif _host_contains_ "$PROCESSOR_ARCHITECTURE" "x86"; then
|
||||
HOST_ARCH="x86"
|
||||
else
|
||||
echo >&2 "-- HOST: unknown arch :("
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
_UNAME_S=$(uname -s)
|
||||
|
||||
if _host_contains_ "$_UNAME_S" "Linux"; then
|
||||
HOST_OS="Linux"
|
||||
elif _host_contains_ "$_UNAME_S" "Darwin"; then
|
||||
HOST_OS="Mac"
|
||||
elif [ -n "$Windows_NT" ]; then
|
||||
HOST_OS="Win"
|
||||
else
|
||||
echo >&2 "-- HOST: unknown os :("
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_UNAME_M=$(uname -m)
|
||||
|
||||
if _host_contains_ "$_UNAME_M" "x86_64"; then
|
||||
HOST_ARCH="x64"
|
||||
elif _host_contains_ "$_UNAME_M" "x86\|i686\|i386"; then
|
||||
HOST_ARCH="x86"
|
||||
elif _host_contains_ "$_UNAME_M" "arm"; then
|
||||
HOST_ARCH="Arm"
|
||||
elif _host_contains_ "$_UNAME_M" "aarch64"; then
|
||||
HOST_ARCH="AArch64"
|
||||
else
|
||||
echo >&2 "-- HOST: unknown arch :("
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [ -n "${_VERBOSE_}" ]; then
|
||||
echo "-- HOST_OS: $HOST_OS"
|
||||
echo "-- HOST_ARCH: $HOST_ARCH"
|
||||
fi
|
||||
25
scripts/common/mkdir.sh
Normal file
25
scripts/common/mkdir.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
[ -n "${_MKDIR_SH_}" ] && return || readonly _MKDIR_SH_=1
|
||||
[ -n "${_VERBOSE_}" ] && echo "-- INCLUDE: mkdir.sh"
|
||||
|
||||
MKDIR="mkdir -p"
|
||||
|
||||
_mkdir() {
|
||||
dir="$1"; required="$2"; verbose="$3";
|
||||
[ -n "$verbose" ] || [ -z "${_VERBOSE_}" ] || verbose=1;
|
||||
if [ -e "$dir" ]; then
|
||||
if [ -d "$dir" ]; then
|
||||
[ -z "$verbose" ] || echo "-- MKDIR: $dir exists"
|
||||
else
|
||||
[ -z "$verbose" ] || echo >&2 "-- MKDIR: $dir not directory"
|
||||
if [ -n "$required" ]; then
|
||||
echo >&2 "-- MKDIR: $dir not directory, but required"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
[ -z "$verbose" ] || echo "-- MKDIR: $dir creates"
|
||||
$MKDIR "$dir"
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user