40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
SCRIPT_DIR=$(dirname $0)
|
|
SCRIPT_NAME=$(basename $0)
|
|
|
|
# test jq is installed
|
|
if ! command -v jq &> /dev/null; then
|
|
echo "jq could not be found"
|
|
echo "sudo apt-get install jq"
|
|
exit 1
|
|
fi
|
|
|
|
# read ~/.config/simple_object_storage/config.json
|
|
CONFIG_PATH="${HOME}/.config/simple_object_storage/config.json"
|
|
if [ ! -f "${CONFIG_PATH}" ]; then
|
|
echo "config file not found at ${CONFIG_PATH}"
|
|
exit 1
|
|
fi
|
|
CONFIG=$(cat "${CONFIG_PATH}")
|
|
|
|
# get the host and port from the config
|
|
HOST=$(echo $CONFIG | jq -r '.host')
|
|
PORT=$(echo $CONFIG | jq -r '.port')
|
|
|
|
# extract the first write token from the config
|
|
WRITE_TOKEN=$(echo $CONFIG | jq -r '.write_tokens[0]')
|
|
|
|
BASE_URL="http://${HOST}:${PORT}"
|
|
|
|
BASE_TAG="autotest"
|
|
|
|
# test every action in the README.md file, leaving the system in the same state it was found
|
|
# and print the output of each action
|
|
|
|
# upload this script as an object
|
|
echo "uploading ${SCRIPT_DIR}/${SCRIPT_NAME} to ${BASE_TAG}:test1"
|
|
OBJECT_HASH=$(curl "${BASE_URL}/upload?token=${WRITE_TOKEN}&labeltag=${BASE_TAG}:test1&filename=${SCRIPT_NAME}" -T ${SCRIPT_DIR}/${SCRIPT_NAME} | jq -r '.hash')
|
|
echo "received hash ${OBJECT_HASH}"
|
|
|