install.sh: Improvements

This commit is contained in:
Anmol Sethi 2022-12-06 04:03:47 -08:00
parent 8b66106667
commit 8010a65795
No known key found for this signature in database
GPG key ID: 25BC68888A99A8BA
3 changed files with 41 additions and 22 deletions

View file

@ -179,6 +179,9 @@ main() {
METHOD=standalone
fi
;;
linux|windows)
METHOD=standalone
;;
*)
warn "unrecognized OS $OS, falling back to --method=standalone"
METHOD=standalone
@ -250,7 +253,7 @@ EOF
else
log "Run ${TALA+D2_LAYOUT=tala }d2 --help for usage."
fi
if ! manpath | grep -qF "$PREFIX/share/man"; then
if ! manpath 2>/dev/null | grep -qF "$PREFIX/share/man"; then
logcat >&2 <<EOF
Extend your \$MANPATH to view d2's manpages:
export MANPATH=$PREFIX/share/man:\$MANPATH

View file

@ -208,12 +208,7 @@ init_remote_hosts() {
}
init_remote_linux() {
while true; do
if sh_c ssh "$REMOTE_HOST" :; then
break
fi
sleep 5
done
wait_remote_host
sh_c ssh "$REMOTE_HOST" sh -s -- <<EOF
set -eux
@ -239,17 +234,13 @@ sudo -E apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-
sudo groupadd docker || true
sudo usermod -aG docker \$USER
EOF
init_remote_env
sh_c ssh "$REMOTE_HOST" 'sudo reboot' || true
}
init_remote_macos() {
while true; do
if sh_c ssh "$REMOTE_HOST" :; then
break
fi
sleep 5
done
wait_remote_host
sh_c ssh "$REMOTE_HOST" '"/bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""'
@ -261,18 +252,40 @@ init_remote_macos() {
if ! echo "$shellenv" | sh_c ssh "$REMOTE_HOST" "IFS= read -r regex\; \"grep -qF \\\"\\\$regex\\\" ~/.zshrc\""; then
echo "$shellenv" | sh_c ssh "$REMOTE_HOST" "\"(echo && cat) >> ~/.zshrc\""
fi
if ! sh_c ssh "$REMOTE_HOST" "'grep -qF \\\$HOME/.local ~/.zshrc'"; then
sh_c ssh "$REMOTE_HOST" "\"(echo && cat) >> ~/.zshrc\"" <<EOF
PATH=\$HOME/.local/bin:\$PATH
MANPATH=\$HOME/.local/share/man:\$MANPATH
EOF
fi
# macOS is a joke.
sh_c ssh "$REMOTE_HOST" '"rm -f ~/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" '"echo PATH=\$HOME/.local/bin:\$(. ~/.zshrc && echo "\$PATH") >\$HOME/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" '"echo MANPATH=\$HOME/.local/share/man:\$(. ~/.zshrc && echo "\$MANPATH") >>\$HOME/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" "sudo sed -i.bak '\"s/#PermitUserEnvironment no/PermitUserEnvironment yes/\"' /etc/ssh/sshd_config"
sh_c ssh "$REMOTE_HOST" "sudo launchctl stop com.openssh.sshd"
init_remote_env
sh_c ssh "$REMOTE_HOST" brew update
sh_c ssh "$REMOTE_HOST" brew upgrade
sh_c ssh "$REMOTE_HOST" brew install go rsync
}
init_remote_env() {
sh_c ssh "$REMOTE_HOST" '"rm -f ~/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" '"echo PATH=\$(echo \"echo \\\$PATH\" | \"\$SHELL\" -ils) >\$HOME/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" '"echo MANPATH=\$(echo \"echo \\\$MANPATH\" | \"\$SHELL\" -ils) >>\$HOME/.ssh/environment"'
sh_c ssh "$REMOTE_HOST" "sudo sed -i.bak '\"s/#PermitUserEnvironment no/PermitUserEnvironment yes/\"' /etc/ssh/sshd_config"
if sh_c ssh "$REMOTE_HOST" uname | grep -qF Darwin; then
sh_c ssh "$REMOTE_HOST" "sudo launchctl stop com.openssh.sshd"
else
sh_c ssh "$REMOTE_HOST" "sudo systemctl restart sshd"
fi
}
wait_remote_host() {
while true; do
if sh_c ssh "$REMOTE_HOST" true; then
break
fi
sleep 5
done
}
main "$@"

View file

@ -761,6 +761,9 @@ main() {
METHOD=standalone
fi
;;
linux|windows)
METHOD=standalone
;;
*)
warn "unrecognized OS $OS, falling back to --method=standalone"
METHOD=standalone
@ -832,7 +835,7 @@ EOF
else
log "Run ${TALA+D2_LAYOUT=tala }d2 --help for usage."
fi
if ! manpath | grep -qF "$PREFIX/share/man"; then
if ! manpath 2>/dev/null | grep -qF "$PREFIX/share/man"; then
logcat >&2 <<EOF
Extend your \$MANPATH to view d2's manpages:
export MANPATH=$PREFIX/share/man:\$MANPATH