From 794ff4a62daa57b985ea35a3d6dc879d771e53f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 27 May 2019 20:41:55 +0200 Subject: [PATCH] installer: add ability to skip the default shell change Co-authored-by: Marshall Ford Co-authored-by: Joel Kuzmarski --- tools/install.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index 66da05690..b479dc803 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -10,9 +10,12 @@ # sh install.sh # # Respects these environment variables for tweaking the installation process: +# ZSH - path to the Oh My Zsh repository folder (default: $HOME/.oh-my-zsh) # REPO - name of the GitHub repo to install from (default: robbyrussell/oh-my-zsh) # REMOTE - full remote URL of the git repo to install (default: GitHub via HTTPS) # BRANCH - branch to check out immediately after install (default: master) +# Other options: +# CHSH - set to no tells the installer not to change the default shell (default: yes) # set -e @@ -22,6 +25,10 @@ REPO=${REPO:-robbyrussell/oh-my-zsh} REMOTE=${REMOTE:-https://github.com/${REPO}.git} BRANCH=${BRANCH:-master} +# Other options +CHSH=${CHSH:-yes} + + command_exists() { command -v "$@" >/dev/null 2>&1 } @@ -118,6 +125,11 @@ export ZSH=\"$ZSH\" } setup_shell() { + # Skip setup if the user wants or stdin is closed (not running interactively). + if [ $CHSH = no ] || ! [ -t 0 ]; then + return + fi + # If this user's login shell is already "zsh", do not attempt to switch. if [ "$(basename "$SHELL")" = "zsh" ]; then return @@ -161,6 +173,14 @@ setup_shell() { } main() { + # Parse arguments + while [ $# -gt 0 ]; do + case $1 in + --skip-chsh) CHSH=no ;; + esac + shift + done + setup_color if ! command_exists zsh; then @@ -202,4 +222,4 @@ main() { exec zsh -l } -main +main "$@"