mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-10-31 22:40:01 +00:00
[feature] add script to test import / export cycle of a gotosocial instance (#2693)
* add script to test import / export cycle of a gotosocial instance * use suffix for setting mktemp file suffix
This commit is contained in:
parent
9bf448be7a
commit
90dcc008c5
1 changed files with 85 additions and 0 deletions
85
test/import-export.sh
Executable file
85
test/import-export.sh
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
HOST='localhost:8080'
|
||||||
|
ADDR='127.0.0.1'
|
||||||
|
PORT='8080'
|
||||||
|
DB=$(mktemp)
|
||||||
|
STORAGE=$(mktemp -d)
|
||||||
|
EXPORT="$(mktemp --suffix '.json')"
|
||||||
|
|
||||||
|
_kill() {
|
||||||
|
pid=$(pidof gotosocial) \
|
||||||
|
|| return # i.e. not running
|
||||||
|
kill -$1 $pid
|
||||||
|
}
|
||||||
|
|
||||||
|
gotosocial() {
|
||||||
|
env \
|
||||||
|
GTS_HOST=$HOST \
|
||||||
|
GTS_PROTOCOL='http' \
|
||||||
|
GTS_BIND_ADDRESS=$ADDR \
|
||||||
|
GTS_PORT=$PORT \
|
||||||
|
GTS_DB_TYPE='sqlite' \
|
||||||
|
GTS_DB_ADDRESS=$DB \
|
||||||
|
GTS_STORAGE_BACKEND='local' \
|
||||||
|
GTS_STORAGE_LOCAL_BASE_PATH=$STORAGE \
|
||||||
|
GTS_WEB_ASSET_BASE_DIR='./web/assets' \
|
||||||
|
GTS_WEB_TEMPLATE_BASE_DIR='./web/template' \
|
||||||
|
go run ./cmd/gotosocial ${@}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleanup instance, database file, export file, storage on exit
|
||||||
|
trap "_kill 9; rm -f $DB; rm -f $EXPORT; rm -rf $STORAGE" exit
|
||||||
|
|
||||||
|
# Iterate list of usernames
|
||||||
|
for username in scoobert \
|
||||||
|
shaggy \
|
||||||
|
daphne \
|
||||||
|
velma \
|
||||||
|
fred \
|
||||||
|
scrappy; do # hahaha
|
||||||
|
|
||||||
|
# Create account for each username
|
||||||
|
gotosocial admin account create \
|
||||||
|
--username ${username} \
|
||||||
|
--password 'sh1t_tiEr_Password Zomg123!' \
|
||||||
|
--email ${username}@example.com
|
||||||
|
|
||||||
|
# Confirm each of the accounts
|
||||||
|
gotosocial admin account confirm \
|
||||||
|
--username ${username}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ensure server runs once
|
||||||
|
gotosocial server start &
|
||||||
|
|
||||||
|
# Kill server
|
||||||
|
sleep 5
|
||||||
|
_kill 15
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Export current gts database to file
|
||||||
|
gotosocial admin export --path "$EXPORT" \
|
||||||
|
|| echo 'failed exporting to file'
|
||||||
|
|
||||||
|
# Clear database
|
||||||
|
rm -f $DB
|
||||||
|
touch $DB
|
||||||
|
|
||||||
|
# Import current gts database from file
|
||||||
|
gotosocial admin import --path "$EXPORT" \
|
||||||
|
|| echo 'failed importing from file'
|
||||||
|
|
||||||
|
# Ensure server can restart
|
||||||
|
{ gotosocial server start \
|
||||||
|
|| echo 'post-import failure'
|
||||||
|
} &
|
||||||
|
|
||||||
|
# Kill server
|
||||||
|
sleep 5
|
||||||
|
_kill 15
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in a new issue