Add: uploader.sh script
This commit is contained in:
parent
b2bea677ef
commit
08380b2ca3
159
scripts/uploader.sh
Executable file
159
scripts/uploader.sh
Executable file
@ -0,0 +1,159 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
# INIT GLOBAL VARIABLES:
|
||||
_VERSION="0.1.0"
|
||||
_PACKGMGR="apt yum"
|
||||
_SCRIPT_NAME="$0"
|
||||
_CMD="curl"
|
||||
_FILE=""
|
||||
_TOKEN=""
|
||||
_URL=""
|
||||
|
||||
|
||||
# Colorize output
|
||||
# Usage - $(colorize CYAN "Hello, friend!")
|
||||
colorize() {
|
||||
local RED="\033[0;31m"
|
||||
local GREEN="\033[0;32m" # <-- [0 means not bold
|
||||
local YELLOW="\033[1;33m" # <-- [1 means bold
|
||||
local BLUE="\033[0;34m"
|
||||
local MAGNETA="\033[0;35"
|
||||
local CYAN="\033[1;36m"
|
||||
# ... Add more colors if you like
|
||||
|
||||
local NC="\033[0m" # No Color
|
||||
|
||||
# printf "${(P)1}${2} ${NC}\n" # <-- zsh
|
||||
# printf "${!1}${2} ${NC}\n" # <-- bash
|
||||
echo -e "${!1}${2}${NC}" # <-- all-purpose
|
||||
}
|
||||
|
||||
|
||||
# checks whether the utility is installed
|
||||
# takes the util name as input $_CMD
|
||||
check_util_exists() {
|
||||
local request_util=$1
|
||||
if ! command -v $request_util >/dev/null; then
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Print help message how used it script
|
||||
help() {
|
||||
local script=$(colorize GREEN "$_SCRIPT_NAME")
|
||||
local required=$(colorize RED "required")
|
||||
printf "Usage: $script [options [parameters]]\n"
|
||||
printf "\n"
|
||||
printf "Options:\n"
|
||||
printf "\n"
|
||||
printf " -f | --file full path to upload file $required\n"
|
||||
printf " -t | --token access token $required\n"
|
||||
printf " -u | --url target url $required\n"
|
||||
printf " -v | --version print version\n"
|
||||
printf " -h | --help print help\n"
|
||||
}
|
||||
|
||||
|
||||
# parse user arguments
|
||||
argparser() {
|
||||
# count user-passed arguments:
|
||||
local count_arguments=$#
|
||||
# run help if empty and exit:
|
||||
if [[ count_arguments -eq 0 ]]; then
|
||||
help
|
||||
exit 2
|
||||
fi
|
||||
# parse args:
|
||||
while [ ! -z "$1" ]; do
|
||||
case "$1" in
|
||||
--file|-f)
|
||||
shift
|
||||
_FILE="$1"
|
||||
;;
|
||||
--token|-t)
|
||||
shift
|
||||
_TOKEN="$1"
|
||||
;;
|
||||
--url|-u)
|
||||
shift
|
||||
_URL="$1"
|
||||
;;
|
||||
--help|-h)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
--version|-v)
|
||||
printf "$_VERSION\n"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
help
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# check curl is exists:
|
||||
curl_is_exists() {
|
||||
if ! check_util_exists $_CMD; then
|
||||
local error_cmd=$(colorize RED "$_CMD")
|
||||
printf "$(colorize RED "ERROR"): upload util doesn't exist, "
|
||||
printf "please install $error_cmd before run $_SCRIPT_NAME\n"
|
||||
# Print how install curl (support only apt/yum):
|
||||
for pkgmgr in $_PACKGMGR; do
|
||||
if check_util_exists $pkgmgr; then
|
||||
printf "$(colorize GREEN "RUN"): $pkgmgr install $error_cmd"
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
validate_args() {
|
||||
if [[ -z $_URL ]]; then
|
||||
printf "$(colorize RED "ERROR"): -u | --url argument is required\n"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z $_FILE ]]; then
|
||||
printf "$(colorize RED "ERROR"): -f | --file argument is required\n"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z $_TOKEN ]]; then
|
||||
printf "$(colorize RED "ERROR"): -t | --token argument is required\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Upload file used curl
|
||||
# get $_URL $_FILE $_TOKEN
|
||||
upload() {
|
||||
local url=$1
|
||||
local file=$2
|
||||
local token=$3
|
||||
# run:
|
||||
curl --progress-bar -X 'POST' \
|
||||
"${url}" \
|
||||
-H 'accept: application/json' \
|
||||
-H "Upload-Token: ${token} " \
|
||||
-H 'Content-Type: multipart/form-data' \
|
||||
-F "file=@${file}" | cat # cat required to show progress bar
|
||||
}
|
||||
|
||||
|
||||
main () {
|
||||
argparser $@
|
||||
curl_is_exists
|
||||
validate_args
|
||||
upload $_URL $_FILE $_TOKEN
|
||||
}
|
||||
|
||||
|
||||
# RUN IT:
|
||||
main $@
|
Loading…
Reference in New Issue
Block a user