mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ -z "$1" ]; then
|
|
echo -e "Usage:\n $0 path/to/file path/to/file ...\n" >&2
|
|
echo -e "Example:\n $0 release/*.tar\n" >&2
|
|
echo -e "The script: will return an URL of created bin, e.g. https://filebin.net/filebin-helper-b1eeb559d" >&2
|
|
echo -e "Bin ID is generated from branch name and revision, so new commit = new bin\n" >&2
|
|
echo -e "Env vars:" >&2
|
|
echo -e " FILEBIN_BIN_ID bin id to upload files to (as in url, 'filebin-helper-b1eeb559d' above)" >&2
|
|
echo -e " FILEBIN_CID client id token, used for authorization" >&2
|
|
exit 1
|
|
fi
|
|
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
REV=$(git rev-parse --short HEAD)
|
|
|
|
if [ -z "${FILEBIN_CID}" ]; then
|
|
FILEBIN_CID=$(echo $USER $HOSTNAME $BRANCH | md5sum | cut -d" " -f1)
|
|
fi
|
|
|
|
if [ -z "${FILEBIN_BIN_ID}" ]; then
|
|
FILEBIN_BIN_ID="${BRANCH//[^a-zA-Z0-9-._]}-${REV}"
|
|
fi
|
|
BIN_URL="https://filebin.net/${FILEBIN_BIN_ID}"
|
|
|
|
echo "FILEBIN_CID=${FILEBIN_CID}"
|
|
|
|
COUNT_TOTAL=0
|
|
COUNT_SUCCESS=0
|
|
|
|
for FILE in "$@"; do
|
|
COUNT_TOTAL=$(($COUNT_TOTAL + 1))
|
|
if [ ! -s "$FILE" ]; then
|
|
echo "${FILE} seems to be broken" >&2
|
|
continue
|
|
fi
|
|
FILE_IN_BIN="$(basename $FILE)"
|
|
FILE_IN_BIN="${FILE_IN_BIN//[^a-zA-Z0-9-._]}"
|
|
UPLOAD_URL="${BIN_URL}/${FILE_IN_BIN}"
|
|
|
|
echo "Uploading ${FILE}"
|
|
echo "File URL: ${UPLOAD_URL}"
|
|
curl --fail --progress-bar ${CURL_EXTRA} \
|
|
-H "cid: ${FILEBIN_CID}" -H 'accept: application/json' -H 'Content-Type: application/octet-stream' \
|
|
-X POST "${UPLOAD_URL}" -T "${FILE}" > /dev/null
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
COUNT_SUCCESS=$(($COUNT_SUCCESS + 1))
|
|
else
|
|
echo -e "Failed: ${FILE}\n" >&2
|
|
fi
|
|
done
|
|
|
|
echo "${COUNT_SUCCESS}/${COUNT_TOTAL} file(s) uploaded to ${BIN_URL}"
|