First commit

This commit is contained in:
John Zhao
2018-03-08 15:54:14 +08:00
commit 5f1168368f
18 changed files with 3024 additions and 0 deletions

50
scripts/common/detect.sh Normal file
View 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
View 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
View 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
View 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
}

13
scripts/getfind.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env sh
if type where &> /dev/null; then
for i in `where find`; do
# find on MSYS instead of Windows
if [ `echo $i | grep -c "msys"` -gt 0 ]; then
echo "${i%.exe}" | tr -d "[:space:]" | sed -e 's/\\/\//g'
exit
fi
done
fi
echo "find"

19
scripts/open.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env sh
BASE_DIR=$(cd "$(dirname "$0")" && pwd)
source "$BASE_DIR/common/echo.sh"
source "$BASE_DIR/common/host.sh"
if [ "$HOST_OS" = "Linux" ]; then
OPEN="xdg-open"
elif [ "$HOST_OS" = "Mac" ]; then
OPEN="open"
elif [ "$HOST_OS" = "Win" ]; then
OPEN="start"
else
_echo_e "Unknown host os :("
exit 1
fi
[ $# -gt 0 ] && $OPEN "$@"