1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/haste_ynh.git synced 2024-09-03 20:36:28 +02:00
haste_ynh/conf/haste.sh
2020-07-26 17:22:58 +02:00

72 lines
1.4 KiB
Bash

#!/bin/bash
set -e
set -u
LOCAL_PASTE_URL="http://127.0.0.1:__PORT__"
PASTE_URL="https://__YNH_HASTE_URL__"
_die() {
printf "Error: %s\n" "$*"
exit 1
}
check_dependencies() {
curl -V > /dev/null 2>&1 || _die "This script requires curl."
}
paste_data() {
json=$(curl -kL -X POST -s -d "$1" "${LOCAL_PASTE_URL}/documents")
[[ -z "$json" ]] && _die "Unable to post the data to the server."
key=$(echo "$json" \
| python -c 'import json,sys;o=json.load(sys.stdin);print o["key"]' \
2>/dev/null)
[[ -z "$key" ]] && _die "Unable to parse the server response."
echo "${PASTE_URL}/${key}"
}
usage() {
printf "Usage: ${0} [OPTION]...
Read from input stream and paste the data to your Haste server.
For example, to paste the output of the YunoHost diagnosis, you can simply execute the following:
yunohost tools diagnosis | ${0}
It will return the URL where you can access the pasted data.
Options:
-h, --help show this help message and exit
"
}
main() {
# parse options
while [ $# -gt 0 ]; do
case "${1}" in
--help|-h)
usage
exit 0
;;
*)
echo "Unknown parameter detected: ${1}" >&2
echo >&2
usage >&2
exit 1
;;
esac
shift 1
done
# check input stream
read -t 0 || {
echo -e "Invalid usage: No input is provided.\n" >&2
usage
exit 1
}
paste_data "$(cat)"
}
check_dependencies
main "${@}"