mirror of
https://github.com/laurent22/joplin.git
synced 2024-11-30 08:26:59 +02:00
193 lines
5.7 KiB
Bash
Executable File
193 lines
5.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Setup the sync parameters for user X and create a few folders and notes to
|
|
# allow sharing. Also calls the API to create the test users and clear the data.
|
|
# This script was setup for the desktop app but can now also be used to test the
|
|
# CLI using the `clix` users.
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# For example, to setup a user for sharing, and another as recipient with E2EE
|
|
# enabled:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh 1 createUsers,createData,reset,e2ee,sync && ./runForTesting.sh 2 reset,e2ee,sync && ./runForTesting.sh 1
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# First user has E2EE, but second one doesn't:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh 1 createUsers,createData,reset,e2ee,sync && ./runForTesting.sh 2 reset,sync && ./runForTesting.sh 1
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# Without E2EE:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh 1 createUsers,createData,reset,sync && ./runForTesting.sh 2 reset,sync && ./runForTesting.sh 1
|
|
|
|
# ./runForTesting.sh 1 createUsers,createData,reset,sync && ./runForTesting.sh 2 reset,sync && ./runForTesting.sh 3 reset,sync && ./runForTesting.sh 1
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# To create two client profiles, in sync, both used by the same user:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh 1 createUsers,createData,reset,sync && ./runForTesting.sh 1a reset,sync && ./runForTesting.sh 1
|
|
# ./runForTesting.sh 1a
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# Team accounts:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh 1 createTeams,createData,resetTeam,sync && ./runForTesting.sh 2 resetTeam,sync && ./runForTesting.sh 1
|
|
|
|
# ----------------------------------------------------------------------------------
|
|
# Testing the CLI app with commands:
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
# ./runForTesting.sh cli1 createUsers,createData,reset,sync
|
|
# ./runForTesting.sh cli1 -- import /path/to/file.jex
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
ROOT_DIR="$SCRIPT_DIR/../.."
|
|
|
|
if [ "$1" == "" ]; then
|
|
echo "User number is required"
|
|
exit 1
|
|
fi
|
|
|
|
USER_NUM=$1
|
|
USER_PROFILE_NUM=$USER_NUM
|
|
IS_DESKTOP=1
|
|
|
|
if [ "$USER_NUM" = "1a" ]; then
|
|
USER_NUM=1
|
|
USER_PROFILE_NUM=1a
|
|
fi
|
|
|
|
if [ "$USER_NUM" = "1b" ]; then
|
|
USER_NUM=1
|
|
USER_PROFILE_NUM=1b
|
|
fi
|
|
|
|
if [ "$USER_NUM" = "2a" ]; then
|
|
USER_NUM=2
|
|
USER_PROFILE_NUM=2a
|
|
fi
|
|
|
|
if [ "$USER_NUM" = "2b" ]; then
|
|
USER_NUM=2
|
|
USER_PROFILE_NUM=2b
|
|
fi
|
|
|
|
if [ "$USER_NUM" = "cli1" ]; then
|
|
USER_NUM=1
|
|
USER_PROFILE_NUM=1
|
|
IS_DESKTOP=0
|
|
fi
|
|
|
|
if [ "$USER_NUM" = "cli1a" ]; then
|
|
USER_NUM=1
|
|
USER_PROFILE_NUM=1a
|
|
IS_DESKTOP=0
|
|
fi
|
|
|
|
COMMANDS=($(echo $2 | tr "," "\n"))
|
|
PROFILE_DIR=~/.config/joplindev-desktop-$USER_PROFILE_NUM
|
|
SYNC_TARGET=10
|
|
|
|
CMD_FILE="$SCRIPT_DIR/runForTestingCommands-$USER_PROFILE_NUM.txt"
|
|
rm -f "$CMD_FILE"
|
|
touch "$CMD_FILE"
|
|
|
|
echo "Using sync target: $SYNC_TARGET"
|
|
|
|
for CMD in "${COMMANDS[@]}"
|
|
do
|
|
if [[ $CMD == "createUsers" ]]; then
|
|
|
|
curl --data '{"action": "createTestUsers"}' -H 'Content-Type: application/json' http://api.joplincloud.local:22300/api/debug
|
|
|
|
elif [[ $CMD == "createUserDeletions" ]]; then
|
|
|
|
curl --data '{"action": "createUserDeletions"}' -H 'Content-Type: application/json' http://api.joplincloud.local:22300/api/debug
|
|
|
|
elif [[ $CMD == "createTeams" ]]; then
|
|
|
|
curl --data '{"action": "createTeams"}' -H 'Content-Type: application/json' http://api.joplincloud.local:22300/api/debug
|
|
|
|
elif [[ $CMD == "createData" ]]; then
|
|
|
|
echo 'mkbook "shared"' >> "$CMD_FILE"
|
|
echo 'mkbook "other"' >> "$CMD_FILE"
|
|
echo 'use "shared"' >> "$CMD_FILE"
|
|
echo 'mknote "note 1"' >> "$CMD_FILE"
|
|
echo 'mknote "note 2"' >> "$CMD_FILE"
|
|
|
|
elif [[ $CMD == "reset" ]]; then
|
|
|
|
USER_EMAIL="user$USER_NUM@example.com"
|
|
rm -rf "$PROFILE_DIR"
|
|
|
|
echo "config keychain.supported 0" >> "$CMD_FILE"
|
|
echo "config sync.target $SYNC_TARGET" >> "$CMD_FILE"
|
|
echo "config sync.$SYNC_TARGET.username $USER_EMAIL" >> "$CMD_FILE"
|
|
echo "config sync.$SYNC_TARGET.password 111111" >> "$CMD_FILE"
|
|
|
|
if [[ $SYNC_TARGET = 9 ]]; then
|
|
echo "config sync.$SYNC_TARGET.path http://api.joplincloud.local:22300" >> "$CMD_FILE"
|
|
echo "config sync.$SYNC_TARGET.userContentPath http://joplinusercontent.local:22300" >> "$CMD_FILE"
|
|
fi
|
|
|
|
elif [[ $CMD == "resetTeam" ]]; then
|
|
|
|
USER_EMAIL="teamuser1-$USER_NUM@example.com"
|
|
rm -rf "$PROFILE_DIR"
|
|
|
|
echo "config keychain.supported 0" >> "$CMD_FILE"
|
|
echo "config sync.target $SYNC_TARGET" >> "$CMD_FILE"
|
|
echo "config sync.$SYNC_TARGET.username $USER_EMAIL" >> "$CMD_FILE"
|
|
echo "config sync.$SYNC_TARGET.password 111111" >> "$CMD_FILE"
|
|
|
|
elif [[ $CMD == "e2ee" ]]; then
|
|
|
|
echo "e2ee enable --password 111111" >> "$CMD_FILE"
|
|
|
|
elif [[ $CMD == "sync" ]]; then
|
|
|
|
echo "sync --use-lock 0" >> "$CMD_FILE"
|
|
|
|
elif [[ $CMD == "--" ]]; then
|
|
|
|
break
|
|
|
|
else
|
|
|
|
echo "Unknown command: $CMD"
|
|
exit 1
|
|
|
|
fi
|
|
done
|
|
|
|
cd "$ROOT_DIR/packages/app-cli"
|
|
yarn start --profile "$PROFILE_DIR" batch "$CMD_FILE"
|
|
|
|
if [[ $CMD != "--" ]]; then
|
|
if [[ $COMMANDS != "" ]]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
if [ "$IS_DESKTOP" = "1" ]; then
|
|
cd "$ROOT_DIR/packages/app-desktop"
|
|
yarn start --profile "$PROFILE_DIR"
|
|
else
|
|
cd "$ROOT_DIR/packages/app-cli"
|
|
if [[ $CMD == "--" ]]; then
|
|
shift
|
|
shift
|
|
yarn start --profile "$PROFILE_DIR" "$@"
|
|
else
|
|
yarn start --profile "$PROFILE_DIR"
|
|
fi
|
|
fi |