diff --git a/examples/deploy-container.sh b/examples/deploy-container.sh index 5912ba5..f9fc494 100755 --- a/examples/deploy-container.sh +++ b/examples/deploy-container.sh @@ -62,7 +62,13 @@ in { } EOF # Run command in container -c() { sudo extra-container run demo-node -- "$@" | cat; } +c() { + if [[ $# > 0 ]]; then + sudo extra-container run demo-node -- "$@" | cat; + else + sudo nixos-container root-login demo-node + fi +} echo echo "Bitcoind service:" @@ -81,6 +87,6 @@ echo "Bitcoind data dir:" sudo ls -al /var/lib/containers/demo-node/var/lib/bitcoind # Uncomment to start a shell session here -# export -f c; bash -li +# . start-bash-session.sh # Cleanup happens at exit (see above) diff --git a/examples/deploy-nixops.sh b/examples/deploy-nixops.sh index b204aa9..155cc5e 100755 --- a/examples/deploy-nixops.sh +++ b/examples/deploy-nixops.sh @@ -38,7 +38,8 @@ nixops deploy -d bitcoin-node # Connect to node nixops ssh bitcoin-node systemctl status bitcoind +c() { nixops ssh bitcoin-node "$@"; } # Uncomment to start a shell session here -# bash -li +# . start-bash-session.sh # Cleanup happens at exit (see above) diff --git a/examples/deploy-qemu-vm.sh b/examples/deploy-qemu-vm.sh index a87547c..01ad0df 100755 --- a/examples/deploy-qemu-vm.sh +++ b/examples/deploy-qemu-vm.sh @@ -91,6 +91,6 @@ echo "Node info:" c nodeinfo # Uncomment to start a shell session here -# export -f c; bash -li +# . start-bash-session.sh # Cleanup happens at exit (see above) diff --git a/examples/start-bash-session.sh b/examples/start-bash-session.sh new file mode 100644 index 0000000..37ba4fc --- /dev/null +++ b/examples/start-bash-session.sh @@ -0,0 +1,15 @@ +# Start an interactive bash session in the current bash environment. + +USAGE_INFO=' +Starting shell... +Run "c COMMAND" to execute a command on the bitcoin node +Run "c" to start a shell session inside the node' + +# BASH_ENVIRONMENT contains definitions of read-only variables like 'BASHOPTS' that +# cause warnings on evaluation. Suppress these warnings while sourcing. +BASH_ENVIRONMENT=<(declare -p; declare -pf) \ +USAGE_INFO="$USAGE_INFO" \ + bash --rcfile <(echo ' + source $BASH_ENVIRONMENT 2>/dev/null + echo "$USAGE_INFO" + ')