Vmeda.Online/scripts/functions.sh

142 lines
3.3 KiB
Bash
Raw Normal View History

#!/bin/bash
function check_success_exit {
if [ $? -ne 0 ]; then
print_error "$1"
exit 1
elif [ "$#" -gt 1 ]; then
print_ok "$2"
fi
}
function check_success {
if [ $? -ne 0 ]; then
print_error "$1"
elif [ "$#" -gt 1 ]; then
print_ok "$2"
fi
}
function print_success {
if [ $? -ne 0 ]; then
print_message "$1"
$3=0
else
print_ok "$2"
fi
}
function print_error {
[[ -t 1 ]] && tput setaf 1
echo " ERROR: $1"
[[ -t 1 ]] && tput sgr0
}
function print_ok {
[[ -t 1 ]] && tput setaf 2
echo " OK: $1"
[[ -t 1 ]] && tput sgr0
echo
}
function print_message {
[[ -t 1 ]] && tput setaf 3
echo "-------- $1"
[[ -t 1 ]] && tput sgr0
echo
}
function print_title {
stepnumber=$(($stepnumber + 1))
echo
[[ -t 1 ]] && tput setaf 5
echo "$stepnumber $1"
[[ -t 1 ]] && tput sgr0
[[ -t 1 ]] && tput setaf 5
echo '=================='
[[ -t 1 ]] && tput sgr0
}
function telegram_notify {
if [ ! -z $TELEGRAM_APIKEY ] && [ ! -z $TELEGRAM_CHATID ] ; then
set_branch_and_repo
MESSAGE="$1%0ABranch: *$REFNAME* on $REPO%0ACommit: $COMMIT%0AJob: $JOB ($RUN_NUMBER) [Complete log here]($JOB_URL)"
URL="https://api.telegram.org/bot$TELEGRAM_APIKEY/sendMessage"
curl -s -X POST $URL -d chat_id=$TELEGRAM_CHATID -d text="$MESSAGE"
fi
}
function notify_on_error_exit {
if [ $? -ne 0 ]; then
print_error "$1"
telegram_notify "$1"
exit 1
fi
}
function set_branch_and_repo {
if [ ! -z $REPO ]; then
# Already filled.
return;
fi
if [ -z $TRAVIS_OS_NAME ]; then
#Run on github
if [ "$RUNNER_OS" == 'macOS' ]; then
export OS_NAME='osx'
elif [ "$RUNNER_OS" == 'Linux' ]; then
export OS_NAME='linux'
elif [ "$RUNNER_OS" == 'Windows' ]; then
export OS_NAME='windows'
fi
export REFNAME=$GITHUB_REF_NAME
export REFTYPE=$GITHUB_REF_TYPE
export REPO=$GITHUB_REPOSITORY
export COMMIT=$GITHUB_SHA
export JOB=$GITHUB_JOB
export JOB_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
export RUN_NUMBER=$GITHUB_RUN_NUMBER
export CI_TYPE='github'
else
# Run on Travis
export OS_NAME=$TRAVIS_OS_NAME
if [ -z "$TRAVIS_TAG" ]; then
export REFTYPE='branch'
export REFNAME=$TRAVIS_BRANCH
else
export REFTYPE='tag'
export REFNAME=$TRAVIS_TAG
fi
export REPO=$TRAVIS_REPO_SLUG
export COMMIT=$TRAVIS_COMMIT
export JOB=$TRAVIS_JOB_NAME
export JOB_URL=$TRAVIS_JOB_WEB_URL
export RUN_NUMBER=$TRAVIS_BUILD_NUMBER
export CI_TYPE='travis'
fi
if [ -z $REFNAME ]; then
print_error "Empty branch/tag, cancelling..."
exit 0
fi
if [ -z $REPO ]; then
print_error "Empty repo, cancelling..."
exit 0
fi
print_title "Build info:"
echo "OS_NAME: $OS_NAME"
echo "REFNAME: $REFNAME"
echo "REFTYPE: $REFTYPE"
echo "REPO: $REPO"
echo "COMMIT: $COMMIT"
echo "JOB: $JOB"
echo "JOB_URL: $JOB_URL"
echo "RUN_NUMBER: $RUN_NUMBER"
echo "CI_TYPE: $CI_TYPE"
}