| 
									
										
										
										
											2016-05-29 10:35:55 +02:00
										 |  |  | #!/bin/sh
 | 
					
						
							| 
									
										
										
										
											2016-05-30 18:05:29 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # This script should be run via curl: | 
					
						
							| 
									
										
										
										
											2019-11-21 02:26:18 +01:00
										 |  |  | #   sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | 
					
						
							| 
									
										
										
										
											2020-08-20 04:26:39 -05:00
										 |  |  | # or via wget: | 
					
						
							| 
									
										
										
										
											2019-11-21 02:26:18 +01:00
										 |  |  | #   sh -c "$(wget -qO- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | 
					
						
							| 
									
										
										
										
											2020-08-20 04:26:39 -05:00
										 |  |  | # or via fetch: | 
					
						
							|  |  |  | #   sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | 
					
						
							| 
									
										
										
										
											2016-05-30 18:05:29 +02:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2015-02-28 01:46:10 -05:00
										 |  |  | # As an alternative, you can first download the install script and run it afterwards: | 
					
						
							| 
									
										
										
										
											2019-11-21 02:26:18 +01:00
										 |  |  | #   wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | 
					
						
							| 
									
										
										
										
											2015-02-28 01:46:10 -05:00
										 |  |  | #   sh install.sh | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2019-05-27 22:58:58 +02:00
										 |  |  | # You can tweak the install behavior by setting variables when running the script. For | 
					
						
							|  |  |  | # example, to change the path to the Oh My Zsh repository: | 
					
						
							|  |  |  | #   ZSH=~/.zsh sh install.sh | 
					
						
							| 
									
										
										
										
											2019-05-28 17:34:05 +02:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2019-05-27 22:58:58 +02:00
										 |  |  | # Respects the following environment variables: | 
					
						
							| 
									
										
										
										
											2019-05-27 20:41:55 +02:00
										 |  |  | #   ZSH     - path to the Oh My Zsh repository folder (default: $HOME/.oh-my-zsh) | 
					
						
							| 
									
										
										
										
											2019-11-21 02:26:18 +01:00
										 |  |  | #   REPO    - name of the GitHub repo to install from (default: ohmyzsh/ohmyzsh) | 
					
						
							| 
									
										
										
										
											2019-05-26 18:57:40 +02:00
										 |  |  | #   REMOTE  - full remote URL of the git repo to install (default: GitHub via HTTPS) | 
					
						
							|  |  |  | #   BRANCH  - branch to check out immediately after install (default: master) | 
					
						
							| 
									
										
										
										
											2019-05-28 17:34:05 +02:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2019-05-27 20:41:55 +02:00
										 |  |  | # Other options: | 
					
						
							| 
									
										
										
										
											2020-02-25 13:42:39 -08:00
										 |  |  | #   CHSH       - 'no' means the installer will not change the default shell (default: yes) | 
					
						
							|  |  |  | #   RUNZSH     - 'no' means the installer will not run zsh after the install (default: yes) | 
					
						
							|  |  |  | #   KEEP_ZSHRC - 'yes' means the installer will not replace an existing .zshrc (default: no) | 
					
						
							| 
									
										
										
										
											2016-05-30 18:05:29 +02:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2019-05-28 17:34:05 +02:00
										 |  |  | # You can also pass some arguments to the install script to set some these options: | 
					
						
							|  |  |  | #   --skip-chsh: has the same behavior as setting CHSH to 'no' | 
					
						
							|  |  |  | #   --unattended: sets both CHSH and RUNZSH to 'no' | 
					
						
							| 
									
										
										
										
											2020-02-25 13:42:39 -08:00
										 |  |  | #   --keep-zshrc: sets KEEP_ZSHRC to 'yes' | 
					
						
							| 
									
										
										
										
											2019-05-28 17:34:05 +02:00
										 |  |  | # For example: | 
					
						
							|  |  |  | #   sh install.sh --unattended | 
					
						
							| 
									
										
										
										
											2020-08-20 11:28:10 +02:00
										 |  |  | # or: | 
					
						
							|  |  |  | #   sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended | 
					
						
							| 
									
										
										
										
											2019-05-28 17:34:05 +02:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2016-05-29 10:35:55 +02:00
										 |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  | # Track if $ZSH was provided | 
					
						
							|  |  |  | custom_zsh=${ZSH:+yes} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-28 01:46:10 -05:00
										 |  |  | # Default settings | 
					
						
							| 
									
										
										
										
											2016-05-30 18:05:29 +02:00
										 |  |  | ZSH=${ZSH:-~/.oh-my-zsh} | 
					
						
							| 
									
										
										
										
											2019-11-21 02:26:18 +01:00
										 |  |  | REPO=${REPO:-ohmyzsh/ohmyzsh} | 
					
						
							| 
									
										
										
										
											2019-05-26 18:57:40 +02:00
										 |  |  | REMOTE=${REMOTE:-https://github.com/${REPO}.git} | 
					
						
							| 
									
										
										
										
											2015-02-28 01:46:10 -05:00
										 |  |  | BRANCH=${BRANCH:-master} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-27 20:41:55 +02:00
										 |  |  | # Other options | 
					
						
							|  |  |  | CHSH=${CHSH:-yes} | 
					
						
							| 
									
										
										
										
											2019-05-27 22:58:33 +02:00
										 |  |  | RUNZSH=${RUNZSH:-yes} | 
					
						
							| 
									
										
										
										
											2020-02-25 13:42:39 -08:00
										 |  |  | KEEP_ZSHRC=${KEEP_ZSHRC:-no} | 
					
						
							| 
									
										
										
										
											2019-05-27 20:41:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 10:35:55 +02:00
										 |  |  | command_exists() { | 
					
						
							| 
									
										
										
										
											2016-08-09 02:28:47 +02:00
										 |  |  | 	command -v "$@" >/dev/null 2>&1 | 
					
						
							| 
									
										
										
										
											2016-05-29 10:35:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  | fmt_error() { | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   printf '%sError: %s%s\n' "$BOLD$RED" "$*" "$RESET" >&2 | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | fmt_underline() { | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   printf '\033[4m%s\033[24m\n' "$*" | 
					
						
							| 
									
										
										
										
											2019-05-21 14:47:25 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  | fmt_code() { | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   # shellcheck disable=SC2016 # backtic in single-quote | 
					
						
							|  |  |  |   printf '`\033[38;5;247m%s%s`\n' "$*" "$RESET" | 
					
						
							| 
									
										
										
										
											2020-08-17 21:47:39 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | setup_color() { | 
					
						
							| 
									
										
										
										
											2019-06-09 00:12:09 +02:00
										 |  |  | 	# Only use colors if connected to a terminal | 
					
						
							|  |  |  | 	if [ -t 1 ]; then | 
					
						
							| 
									
										
										
										
											2019-05-24 19:58:09 +02:00
										 |  |  | 		RED=$(printf '\033[31m') | 
					
						
							|  |  |  | 		GREEN=$(printf '\033[32m') | 
					
						
							|  |  |  | 		YELLOW=$(printf '\033[33m') | 
					
						
							|  |  |  | 		BLUE=$(printf '\033[34m') | 
					
						
							|  |  |  | 		BOLD=$(printf '\033[1m') | 
					
						
							|  |  |  | 		RESET=$(printf '\033[m') | 
					
						
							| 
									
										
										
										
											2019-06-09 00:12:09 +02:00
										 |  |  | 	else | 
					
						
							|  |  |  | 		RED="" | 
					
						
							|  |  |  | 		GREEN="" | 
					
						
							|  |  |  | 		YELLOW="" | 
					
						
							|  |  |  | 		BLUE="" | 
					
						
							|  |  |  | 		BOLD="" | 
					
						
							|  |  |  | 		RESET="" | 
					
						
							| 
									
										
										
										
											2016-08-09 02:28:47 +02:00
										 |  |  | 	fi | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-03-03 21:13:46 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | setup_ohmyzsh() { | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   # Prevent the cloned repository from having insecure permissions. Failing to do | 
					
						
							|  |  |  |   # so causes compinit() calls to fail with "command not found: compdef" errors | 
					
						
							|  |  |  |   # for users with insecure umasks (e.g., "002", allowing group writability). Note | 
					
						
							|  |  |  |   # that this will be ignored under Cygwin by default, as Windows ACLs take | 
					
						
							|  |  |  |   # precedence over umasks except for filesystems mounted with option "noacl". | 
					
						
							|  |  |  |   umask g-w,o-w | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo "${BLUE}Cloning Oh My Zsh...${RESET}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   command_exists git || { | 
					
						
							|  |  |  |     fmt_error "git is not installed" | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   ostype=$(uname) | 
					
						
							|  |  |  |   if [ -z "${ostype%CYGWIN*}" ] && git --version | grep -q msysgit; then | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |     fmt_error "Windows/MSYS Git is not supported on Cygwin" | 
					
						
							|  |  |  |     fmt_error "Make sure the Cygwin git package is installed and is first on the \$PATH" | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   git clone -c core.eol=lf -c core.autocrlf=false \
 | 
					
						
							|  |  |  |     -c fsck.zeroPaddedFilemode=ignore \
 | 
					
						
							|  |  |  |     -c fetch.fsck.zeroPaddedFilemode=ignore \
 | 
					
						
							|  |  |  |     -c receive.fsck.zeroPaddedFilemode=ignore \
 | 
					
						
							|  |  |  |     --depth=1 --branch "$BRANCH" "$REMOTE" "$ZSH" || { | 
					
						
							|  |  |  |     fmt_error "git clone of oh-my-zsh repo failed" | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-10-16 23:03:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | setup_zshrc() { | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   # Keep most recent old .zshrc at .zshrc.pre-oh-my-zsh, and older ones | 
					
						
							|  |  |  |   # with datestamp of installation that moved them aside, so we never actually | 
					
						
							|  |  |  |   # destroy a user's original zshrc | 
					
						
							|  |  |  |   echo "${BLUE}Looking for an existing zsh config...${RESET}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Must use this exact name so uninstall.sh can find it | 
					
						
							|  |  |  |   OLD_ZSHRC=~/.zshrc.pre-oh-my-zsh | 
					
						
							|  |  |  |   if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then | 
					
						
							|  |  |  |     # Skip this if the user doesn't want to replace an existing .zshrc | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |     if [ "$KEEP_ZSHRC" = yes ]; then | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |       echo "${YELLOW}Found ~/.zshrc.${RESET} ${GREEN}Keeping...${RESET}" | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     if [ -e "$OLD_ZSHRC" ]; then | 
					
						
							|  |  |  |       OLD_OLD_ZSHRC="${OLD_ZSHRC}-$(date +%Y-%m-%d_%H-%M-%S)" | 
					
						
							|  |  |  |       if [ -e "$OLD_OLD_ZSHRC" ]; then | 
					
						
							|  |  |  |         fmt_error "$OLD_OLD_ZSHRC exists. Can't back up ${OLD_ZSHRC}" | 
					
						
							|  |  |  |         fmt_error "re-run the installer again in a couple of seconds" | 
					
						
							|  |  |  |         exit 1 | 
					
						
							|  |  |  |       fi | 
					
						
							|  |  |  |       mv "$OLD_ZSHRC" "${OLD_OLD_ZSHRC}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       echo "${YELLOW}Found old ~/.zshrc.pre-oh-my-zsh." \
 | 
					
						
							|  |  |  |         "${GREEN}Backing up to ${OLD_OLD_ZSHRC}${RESET}" | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     echo "${YELLOW}Found ~/.zshrc.${RESET} ${GREEN}Backing up to ${OLD_ZSHRC}${RESET}" | 
					
						
							|  |  |  |     mv ~/.zshrc "$OLD_ZSHRC" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo "${GREEN}Using the Oh My Zsh template file and adding it to ~/.zshrc.${RESET}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   sed "/^export ZSH=/ c\\
 | 
					
						
							| 
									
										
										
										
											2016-08-09 02:28:47 +02:00
										 |  |  | export ZSH=\"$ZSH\" | 
					
						
							| 
									
										
										
										
											2020-02-25 03:39:10 +08:00
										 |  |  | " "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp
 | 
					
						
							| 
									
										
										
										
											2016-08-09 02:28:47 +02:00
										 |  |  | 	mv -f ~/.zshrc-omztemp ~/.zshrc | 
					
						
							| 
									
										
										
										
											2019-05-28 18:34:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	echo | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-08-30 18:36:11 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | setup_shell() { | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   # Skip setup if the user wants or stdin is closed (not running interactively). | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   if [ "$CHSH" = no ]; then | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |     return | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # If this user's login shell is already "zsh", do not attempt to switch. | 
					
						
							|  |  |  |   if [ "$(basename -- "$SHELL")" = "zsh" ]; then | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # If this platform doesn't provide a "chsh" command, bail out. | 
					
						
							|  |  |  |   if ! command_exists chsh; then | 
					
						
							|  |  |  |     cat <<EOF | 
					
						
							|  |  |  | I can't change your shell automatically because this system does not have chsh. | 
					
						
							|  |  |  | ${BLUE}Please manually change your default shell to zsh${RESET} | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo "${BLUE}Time to change your default shell to zsh:${RESET}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Prompt for user choice on changing the default login shell | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   printf '%sDo you want to change your default shell to zsh? [Y/n]%s ' \
 | 
					
						
							|  |  |  |     "$YELLOW" "$RESET" | 
					
						
							|  |  |  |   read -r opt | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   case $opt in | 
					
						
							|  |  |  |     y*|Y*|"") echo "Changing the shell..." ;; | 
					
						
							|  |  |  |     n*|N*) echo "Shell change skipped."; return ;; | 
					
						
							|  |  |  |     *) echo "Invalid choice. Shell change skipped."; return ;; | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Check if we're running on Termux | 
					
						
							|  |  |  |   case "$PREFIX" in | 
					
						
							|  |  |  |     *com.termux*) termux=true; zsh=zsh ;; | 
					
						
							|  |  |  |     *) termux=false ;; | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if [ "$termux" != true ]; then | 
					
						
							|  |  |  |     # Test for the right location of the "shells" file | 
					
						
							|  |  |  |     if [ -f /etc/shells ]; then | 
					
						
							|  |  |  |       shells_file=/etc/shells | 
					
						
							|  |  |  |     elif [ -f /usr/share/defaults/etc/shells ]; then # Solus OS | 
					
						
							|  |  |  |       shells_file=/usr/share/defaults/etc/shells | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       fmt_error "could not find /etc/shells file. Change your default shell manually." | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Get the path to the right zsh binary | 
					
						
							|  |  |  |     # 1. Use the most preceding one based on $PATH, then check that it's in the shells file | 
					
						
							|  |  |  |     # 2. If that fails, get a zsh path from the shells file, then check it actually exists | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |     if ! zsh=$(command -v zsh) || ! grep -qx "$zsh" "$shells_file"; then | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |       if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -1) || [ ! -f "$zsh" ]; then | 
					
						
							|  |  |  |         fmt_error "no zsh binary found or not present in '$shells_file'" | 
					
						
							|  |  |  |         fmt_error "change your default shell manually." | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |       fi | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # We're going to change the default shell, so back up the current one | 
					
						
							|  |  |  |   if [ -n "$SHELL" ]; then | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |     echo "$SHELL" > ~/.shell.pre-oh-my-zsh | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2021-03-25 12:08:00 +01:00
										 |  |  |     grep "^$USERNAME:" /etc/passwd | awk -F: '{print $7}' > ~/.shell.pre-oh-my-zsh | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Actually change the default shell to zsh | 
					
						
							|  |  |  |   if ! chsh -s "$zsh"; then | 
					
						
							|  |  |  |     fmt_error "chsh command unsuccessful. Change your default shell manually." | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     export SHELL="$zsh" | 
					
						
							|  |  |  |     echo "${GREEN}Shell successfully changed to '$zsh'.${RESET}" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo | 
					
						
							| 
									
										
										
										
											2016-05-29 08:15:40 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | main() { | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   # Run as unattended if stdin is not a tty | 
					
						
							|  |  |  |   if [ ! -t 0 ]; then | 
					
						
							|  |  |  |     RUNZSH=no | 
					
						
							|  |  |  |     CHSH=no | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Parse arguments | 
					
						
							|  |  |  |   while [ $# -gt 0 ]; do | 
					
						
							|  |  |  |     case $1 in | 
					
						
							|  |  |  |       --unattended) RUNZSH=no; CHSH=no ;; | 
					
						
							|  |  |  |       --skip-chsh) CHSH=no ;; | 
					
						
							|  |  |  |       --keep-zshrc) KEEP_ZSHRC=yes ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |     shift | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup_color | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if ! command_exists zsh; then | 
					
						
							|  |  |  |     echo "${YELLOW}Zsh is not installed.${RESET} Please install zsh first." | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if [ -d "$ZSH" ]; then | 
					
						
							|  |  |  |     echo "${YELLOW}The \$ZSH folder already exists ($ZSH).${RESET}" | 
					
						
							|  |  |  |     if [ "$custom_zsh" = yes ]; then | 
					
						
							|  |  |  |       cat <<EOF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You ran the installer with the \$ZSH setting or the \$ZSH variable is | 
					
						
							|  |  |  | exported. You have 3 options: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1. Unset the ZSH variable when calling the installer: | 
					
						
							|  |  |  |    $(fmt_code "ZSH= sh install.sh") | 
					
						
							|  |  |  | 2. Install Oh My Zsh to a directory that doesn't exist yet: | 
					
						
							|  |  |  |    $(fmt_code "ZSH=path/to/new/ohmyzsh/folder sh install.sh") | 
					
						
							|  |  |  | 3. (Caution) If the folder doesn't contain important information, | 
					
						
							|  |  |  |    you can just remove it with $(fmt_code "rm -r $ZSH") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       echo "You'll need to remove it if you want to reinstall." | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup_ohmyzsh | 
					
						
							|  |  |  |   setup_zshrc | 
					
						
							|  |  |  |   setup_shell | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   printf %s "$GREEN" | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  |   cat <<'EOF' | 
					
						
							|  |  |  |          __                                     __ | 
					
						
							|  |  |  |   ____  / /_     ____ ___  __  __   ____  _____/ /_ | 
					
						
							|  |  |  |  / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
 | 
					
						
							|  |  |  | / /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / | 
					
						
							|  |  |  | \____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/ | 
					
						
							|  |  |  |                         /____/                       ....is now installed! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  |   cat <<EOF | 
					
						
							|  |  |  | Before you scream Oh My Zsh! please look over the ~/.zshrc file to select plugins, themes, and options. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | • Follow us on Twitter: $(fmt_underline https://twitter.com/ohmyzsh) | 
					
						
							|  |  |  | • Join our Discord server: $(fmt_underline https://discord.gg/ohmyzsh) | 
					
						
							|  |  |  | • Get stickers, shirts, coffee mugs and other swag: $(fmt_underline https://shop.planetargon.com/collections/oh-my-zsh) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EOF | 
					
						
							| 
									
										
										
										
											2021-03-16 00:06:06 +01:00
										 |  |  |   printf %s "$RESET" | 
					
						
							| 
									
										
										
										
											2020-10-31 23:53:03 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if [ $RUNZSH = no ]; then | 
					
						
							|  |  |  |     echo "${YELLOW}Run zsh to try it out.${RESET}" | 
					
						
							|  |  |  |     exit | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   exec zsh -l | 
					
						
							| 
									
										
										
										
											2015-10-21 10:44:56 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-27 20:41:55 +02:00
										 |  |  | main "$@" |