Files
muninn/sidecars/linkedin-post/run.sh
T

57 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
EMAIL=""
PASSWORD=""
POST_TEXT=""
HEADLESS_FLAG="true"
for arg in "$@"; do
case "$arg" in
--email=*) EMAIL="${arg#*=}" ;;
--password=*) PASSWORD="${arg#*=}" ;;
--post=*) POST_TEXT="${arg#*=}" ;;
--headed) HEADLESS_FLAG="false" ;;
*)
UNKNOWN_FLAG="${arg%%=*}"
echo "{\"success\": false, \"error\": \"Unknown argument: $UNKNOWN_FLAG\"}"
exit 1
;;
esac
done
MISSING=""
[ -z "$EMAIL" ] && MISSING="$MISSING --email"
[ -z "$PASSWORD" ] && MISSING="$MISSING --password"
[ -z "$POST_TEXT" ] && MISSING="$MISSING --post"
if [ -n "$MISSING" ]; then
echo "{\"success\": false, \"error\": \"Missing required argument(s):$MISSING\"}"
exit 1
fi
export LINKEDIN_EMAIL="$EMAIL"
export LINKEDIN_PASSWORD="$PASSWORD"
export POST_CONTENT="$POST_TEXT"
export HEADLESS="$HEADLESS_FLAG"
set +e
npx playwright test tests/linkedin-post.spec.js
PLAYWRIGHT_EXIT_CODE=$?
set -e
RESULT_FILE="test-results/result.json"
if [ -f "$RESULT_FILE" ]; then
cat "$RESULT_FILE"
echo
else
echo "{\"success\": false, \"error\": \"Test did not produce a result file\"}"
exit 1
fi
exit "$PLAYWRIGHT_EXIT_CODE"