#!/bin/sh docker__compose() { CURRENT_UID=$(id -u) CURRENT_GID=$(id -g) command docker compose --env-file .env.sndev "$@" } docker__exec() { exec command docker exec "$@" } sndev__docker_stacker_lnd() { docker__exec -u lnd stacker_lnd lncli "$@" } sndev__docker_sn_lnd() { docker__exec -u lnd sn_lnd lncli "$@" } sndev__start() { if [ ! -x "$(command -v docker-compose)" ]; then echo "docker compose is not installed" echo "installation instructions are here: https://docs.docker.com/desktop/" exit 0 fi if ! [ -f .env.sndev ]; then echo ".env.sndev does not exist." echo "creating from .env.sample" cp .env.sample .env.sndev fi echo "Starting application" docker__compose up --build } sndev__stop() { echo "Stopping application" docker__compose down } sndev__delete() { echo "Deleting application" docker__compose down --volumes --remove-orphans } sndev__fund() { shift sndev__docker_stacker_lnd payinvoice --force "$@" } sndev__withdraw() { shift sndev__docker_stacker_lnd addinvoice --amt "$@" | jq -r '.payment_request' } sndev__help() { if [ $# -eq 3 ]; then call "sndev__$1__$2__$3" "$@" elif [ $# -eq 2 ]; then call "sndev__$1__$2" "$@" else help=" 888 888 888 .d8888b 88888b. .d88888 .d88b. 888 888 88K 888 '88b d88' 888 d8P Y8b 888 888 'Y8888b. 888 888 888 888 88888888 Y88 88P X88 888 888 Y88b 888 Y8b. Y8bd8P 88888P' 888 888 'Y88888 'Y8888 Y88P manages a docker based stacker news development environment USAGE $ sndev [COMMAND] COMMANDS start start env stop stop env delete delete env fund pay a bolt11 for funding withdraw make a bolt11 for withdrawal help display help for sndev " echo "$help" fi } call() { func=$1 if type "$func" 1>/dev/null 2>&1; then shift "$func" "$@" # invoke our named function w/ all remaining arguments else sndev__help exit 1 fi } call "sndev__$1" "$@"