kickstart/lib/kickstart-deploy
Bruno Tavares caa3a7378b Allocates a tty when deploying to allow full fledge interaction
To have some interactions on the script we need to allocate a tty. This
adds a pseudo-tty to the ssh session.

This enables `read -s` on deployment scripts.
2015-09-26 23:44:25 -03:00

39 lines
751 B
Bash
Executable File

#!/bin/bash -e
[[ "$1" == "--sudo" ]] && prefix="sudo " && shift
[[ "$1" == "--password" ]] && shift && prefix="echo \"$1\" | sudo -S true && sudo " && shift
target=$1
[ "$target" ] || echo "Please, provide an ssh target"
shift
[ "$DEBUG" ] && debug="-x"
kickstart compile "$@"
copy_command=$(
cat <<CMD
{
deploy_folder=\$(mktemp -d -t kickstart.XXXXX)
mkdir -p "\$deploy_folder"
cd "\$deploy_folder"
tar xz
echo "\$deploy_folder"
}
CMD
)
deploy_folder=$(tar chz -C compile . | ssh $target "bash -c '$copy_command'")
execute_command=$(
cat <<CMD
{
cd $deploy_folder
exit_status=0
$prefix bash $debug install.sh || exit_status=\$?
rm -rf "$deploy_folder"
exit \$exit_status
}
CMD
)
ssh -t $target "bash -c '$execute_command'"