add helper script to perform blog actions
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
cookies.txt
|
||||||
Executable
+180
@@ -0,0 +1,180 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cookie_path=./cookies.txt
|
||||||
|
|
||||||
|
print_help() {
|
||||||
|
echo "tesoft.dev helper script"
|
||||||
|
echo ""
|
||||||
|
echo "usage: $0 <action>"
|
||||||
|
echo ""
|
||||||
|
echo "login into the webpage with a password:"
|
||||||
|
echo "> $0 login"
|
||||||
|
echo ""
|
||||||
|
echo "logout from the webpage:"
|
||||||
|
echo "> $0 logout"
|
||||||
|
echo ""
|
||||||
|
echo "create a new blog article:"
|
||||||
|
echo "> $0 upload ./article.tar"
|
||||||
|
echo ""
|
||||||
|
echo "update an existing blog article:"
|
||||||
|
echo "> $0 patch 123 ./article.tar"
|
||||||
|
echo ""
|
||||||
|
echo "publish an existing blog article:"
|
||||||
|
echo "> $0 publish 123"
|
||||||
|
echo ""
|
||||||
|
echo "unpublish an existing blog article:"
|
||||||
|
echo "> $0 unpublish 123"
|
||||||
|
echo ""
|
||||||
|
echo "delete an existing blog article:"
|
||||||
|
echo "> $0 drop 123"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
login() {
|
||||||
|
echo -n "password: "
|
||||||
|
read -s password
|
||||||
|
echo ""
|
||||||
|
out=$(curl -v -f -H 'Content-Type: application/json' -d "{\"password\":\"$password\"}" "$URL/api/login" -c "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
logout() {
|
||||||
|
out=$(curl -v -f -X POST "$URL/api/logout" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "$cookie_path"
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
upload() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "error: article file is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! [ -f "$1" ]; then
|
||||||
|
echo "error: article file not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=$(curl -v -f -X PUT -F "file=@$1" "$URL/api/blog" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok, id = $(echo "$out" | tail -1 | grep -oP '[0-9]+')"
|
||||||
|
}
|
||||||
|
|
||||||
|
patch() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "error: article id is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "$2" ]; then
|
||||||
|
echo "error: article file is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! [ -f "$2" ]; then
|
||||||
|
echo "error: article file not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=$(curl -v -f -X PATCH -F "file=@$2" "$URL/api/blog/$1" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
publish() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "error: article id is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=$(curl -v -f -X POST "$URL/api/blog/$1/publish" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
unpublish() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "error: article id is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=$(curl -v -f -X POST "$URL/api/blog/$1/unpublish" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
drop() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "error: article id is not passed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=$(curl -v -f -X DELETE "$URL/api/blog/$1" -b "$cookie_path" 2>&1)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$out" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$#" -eq 0 ] || [ "$1" = "--help" ]; then
|
||||||
|
print_help
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$URL" ]; then
|
||||||
|
URL="https://tesoft.dev"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
login)
|
||||||
|
login
|
||||||
|
;;
|
||||||
|
logout)
|
||||||
|
logout
|
||||||
|
;;
|
||||||
|
upload)
|
||||||
|
upload "$2"
|
||||||
|
;;
|
||||||
|
patch)
|
||||||
|
patch "$2" "$3"
|
||||||
|
;;
|
||||||
|
publish)
|
||||||
|
publish "$2"
|
||||||
|
;;
|
||||||
|
unpublish)
|
||||||
|
unpublish "$2"
|
||||||
|
;;
|
||||||
|
drop)
|
||||||
|
drop "$2"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "error: unknown action" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
Reference in New Issue
Block a user