#!/bin/sh set -eu OLD_CONTAINER=kosync SQLITE=./data/kosync.sqlite3 IMAGE=sodium/kosync-rs:v2.1.1 REDIS_URL=redis://127.0.0.1:6379/1 PULL=1 FLUSH_TARGET=0 usage() { echo "Usage: $0 [--old-container NAME] [--sqlite PATH] [--image IMAGE] [--redis-url URL] [--flush-target] [--no-pull]" >&2 } while [ "$#" -gt 0 ]; do case "$1" in --old-container) OLD_CONTAINER=$2 shift 2 ;; --sqlite) SQLITE=$2 shift 2 ;; --image) IMAGE=$2 shift 2 ;; --redis-url) REDIS_URL=$2 shift 2 ;; --flush-target) FLUSH_TARGET=1 shift ;; --no-pull) PULL=0 shift ;; -h|--help) usage exit 0 ;; *) usage exit 2 ;; esac done case "$SQLITE" in /*) SQLITE_ABS=$SQLITE ;; *) SQLITE_ABS=$(pwd)/$SQLITE ;; esac SQLITE_DIR=$(dirname "$SQLITE_ABS") SQLITE_BASE=$(basename "$SQLITE_ABS") if [ "$PULL" -eq 1 ]; then docker pull "$IMAGE" fi echo "image: $IMAGE" echo "old container: $OLD_CONTAINER" echo "redis url: $REDIS_URL" echo "sqlite: $SQLITE_ABS" set -- export-redis --redis-url "$REDIS_URL" --db "/data/$SQLITE_BASE" if [ "$FLUSH_TARGET" -eq 1 ]; then set -- "$@" --flush-target fi docker run --rm \ --network "container:$OLD_CONTAINER" \ -v "$SQLITE_DIR:/data" \ "$IMAGE" \ "$@"