The previous check only worked if the user could run `sudo` without typing the
password, which is almost none (I checked in Google Cloud Shell so I failed to
notice this).
This new check works whether the user has no sudo privileges, or if it has,
whether they have to type in the password or not.
It should really be easier to check if the user doesn't have privilege without
having to make them type the password.
This fixes the error in Google Cloud Shell, where a password prompt
appears when running `chsh` but the user (hello) does not have a
password.
If ran with `sudo`, the `chsh` command happens without a password
prompt.
* refactor(install.sh): fix static analysis warnings
Clear all warnings and errors raised by shellcheck.net static analysis.
- Replace non-POSIX shell use of `$OSTYPE` by POSIX compliant check on `uname -o`.
- Move variables out of`printf` format string.
- Refactor/simplify string formatters for error and underline.
- Fix expansion of arguments to a single string `$*` rather than individual elements `$@` within the error and underline formatters.
* fix(uname): non-posix -o option
* fix(install.sh): non portable which
Replaced non-portable `which zsh` by portable `command -v zsh`
This facilitates testing of changes to the core installation code: you'll be
able to do a roundtrip test of install and uninstall using the working code on
your branch.
Controlled by passing $REPO and $BRANCH environment variables to install.sh.
This changes the behavior to default to the binary found first in $PATH,
then checking it's actually in the shells file (/etc/shells).
If that fails go back to the previous behavior, but actually check that
the path obtained exists in the filesystem.
Co-authored-by: Joel Kuzmarski <leoj3n@gmail.com>
This replaces the currently running process with the new one using `exec`
instead of creating a new process. This way, when the user `exit`s out of
the new shell it will not pop them back into the shell from which ohmyzsh
was installed from.
* Updating Oh My Zsh shop URLs
Linking directly to the Oh My Zsh inventory vs the top-level store with non-OMZ items.
* Updating link to Oh My Zsh products in the install script
* Updating link to Oh My Zsh shop products in the upgrade script
* Getting rid of 't-' in shirts for now