Commit Graph

125 Commits

Author SHA1 Message Date
Marc Cornellà
c81804825c
fix(installer): fix removal of OMZ directory on failure
When the `git init` call fails, the directory is not created,
so the rm command fails with a not found error. This change
checks whether the directory exists before deleting it.
2022-02-25 14:06:19 +01:00
Marc Cornellà
914b6399e8 fix(installer): silence git init 2022-02-22 21:24:43 +01:00
Marc Cornellà
9b883aa417 fix(installer): set $HOME if not defined (#10680)
Fixes #10680
2022-02-22 21:24:43 +01:00
Marc Cornellà
46f5d38b1d
refactor(installer): use POSIX-standard's id -u -n to define $USER 2022-01-28 20:53:30 +01:00
Marc Cornellà
59c40eee8e
fix(installer): avoid git clone -c to support git v1.7.1 (#10621) 2022-01-27 18:01:27 +01:00
Marc Cornellà
788802af68
fix(installer): correct check for sudo in shell change logic 2022-01-24 15:56:10 +01:00
Marc Cornellà
861805b64d
fix(installer): define $USER if not defined
Fixes missing $USER value in ArchLinux sh (bash)
2022-01-24 15:42:10 +01:00
Marc Cornellà
c7221c5f25
style(installer): prefix formatting variables with FMT_ 2022-01-24 15:41:40 +01:00
Marc Cornellà
c63ba17525
refactor(installer): simplify user_can_sudo check 2022-01-11 19:53:50 +01:00
Marc Cornellà
a0a949de56
fix(installer): fix sudo check for users with password or without privileges
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.
2022-01-11 19:13:23 +01:00
Marc Cornellà
b7a59e6d5c
fix(installer): run chsh with sudo if user has privileges
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.
2022-01-11 16:45:36 +01:00
Marc Cornellà
fbdc078fa6
style: use 24bit colors in Oh My Zsh logo if supported 2022-01-09 23:11:35 +01:00
Marc Cornellà
f85087005a
fix(installer): fix POSIX shell syntax of previous commit 2021-12-26 23:27:49 +01:00
Marc Cornellà
ba069e7731
fix(installer): don't hard-code user $HOME directory on install 2021-12-26 22:40:38 +01:00
Marc Cornellà
fb12e41353
fix(install): fix backslash in printf when showing logo (#10422)
Fixes #10422
2021-11-16 19:24:32 +01:00
Kevin Burke
e86c6f5e7f
style: use -n flag in head and tail commands (#10391)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-11-09 09:04:10 +01:00
Marc Cornellà
57e8c959a0
style(installer): use rainbow logo and polish success message (#10211) 2021-09-23 18:28:34 +02:00
Marc Cornellà
098bcda691
feat(update): allow updating from branch set up on install
Closes #8788

Co-authored-by: Nikolas Garofil <nikolas@garofil.be>
2021-09-22 09:27:43 +02:00
Marc Cornellà
02d07f3e3d
fix: use $USERNAME guaranteed to always be defined in zsh
Fixes #9701
2021-03-25 12:08:00 +01:00
Léa Gris
95a06f3927
refactor(installer): fix static analysis warnings (#9529)
* 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`
2021-03-16 00:06:06 +01:00
Marc Cornellà
eef04c62c2 fix(installer): fix error message if $ZSH exists when installing
Also prefix all formatting functions with fmt_

Related: #9427
2020-11-09 20:06:19 +01:00
Marc Cornellà
03b6a72576 docs: document oneline argument passing to install script 2020-08-20 11:28:10 +02:00
Adam G. Emerson
93f8c0686c
docs: add fetch install command for FreeBSD (#9172)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-08-20 11:26:39 +02:00
Marc Cornellà
613045e7e5 Underline links in install and update script 2020-08-17 21:47:39 +02:00
Alex Zdanowicz
232cb19859
install: fix typo (#9069)
Changing 'your' to 'you'
2020-07-01 15:44:14 +02:00
Larson Carter
ce28ac42c8
Modernize install and update banners (#9045) 2020-06-28 22:06:13 +02:00
Michael Dorst
1a880fdb9b
installer: add option to install without replacing .zshrc (#8209)
* Add option to install OMZ without replacing .zshrc

tools/install.sh respects REPLACE_RC environment variable
--noreplace-rc flag sets REPLACE_RC='no'

* Change REPLACE_RC=no to KEEP_ZSHRC=yes

Change --noreplace-rc to --keep-zshrc
2020-02-25 22:42:39 +01:00
Jonathan Chang
0e57142729
installer: remove redundant cp command (#8668) 2020-02-24 20:39:10 +01:00
Marc Cornellà
b80b1a1e8b Actions to take after repository migration is complete (#8394)
* Change project URL from robbyrussell to ohmyzsh org

* Update git remote to use ohmyzsh org repository
2019-11-20 17:26:18 -08:00
Marc Cornellà
534ec60bfd Set default git-config values known to fix repository issues
- core.autocrlf=false -> #4069
- fsck.zeroPaddedFilemode -> #4963

Fixes #4069
Fixes #4963
2019-10-21 17:00:04 +02:00
Marc Cornellà
fd4571d1b0 installer: allow chsh to work in termux 2019-09-08 21:35:45 +02:00
Marc Cornellà
702a594df3 installer: don't rely on tput for coloring
tput is error-prone and may not be needed, since all the formatting
codes used are standard across all types of terminals.
2019-06-09 16:33:06 +02:00
Marc Cornellà
b944fee6ea installer: ask user about changing the shell to zsh 2019-06-03 17:18:25 +02:00
Marc Cornellà
0824dcc9fb installer: allow for tput errors
tput may throw errors on invalid $TERM values, for example.
This shorthand syntax allows for that as well as for if tput
doesn't exist.
2019-06-03 17:18:25 +02:00
Zach Whitten
2e54ba2dfb installer: restore previous default shell with uninstall
Co-authored-by: Antonio QUINTAVALLE <antonio.quintavalle@amadeus.com>
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2019-06-03 17:18:25 +02:00
Marc Cornellà
66d6d08841 installer: improve message formatting and color 2019-06-03 17:18:25 +02:00
Marc Cornellà
b931d6a9db installer: change to --unattended argument and add docs 2019-06-03 17:18:25 +02:00
Marc Cornellà
065844fdc0 installer: comment changes 2019-06-03 17:18:25 +02:00
Marc Cornellà
1cf42a506f installer: add option to not run zsh at the end
Co-authored-by: Liquidsoul <liquidsoul@liquidsoul.fr>
Co-authored-by: Alexander Polynomdivision <digitalmail555@googlemail.com>
Co-authored-by: loket <loket@cruftlab.io>
Co-authored-by: Connor Demille <subtlepseudonym@gmail.com>
2019-06-03 17:18:25 +02:00
Marc Cornellà
a40d93295f installer: don't run zsh at the end
Co-authored-by: Joel Kuzmarski <leoj3n@gmail.com>
2019-06-03 17:18:24 +02:00
Marc Cornellà
794ff4a62d installer: add ability to skip the default shell change
Co-authored-by: Marshall Ford <inbox@marshallford.me>
Co-authored-by: Joel Kuzmarski <leoj3n@gmail.com>
2019-06-03 17:18:24 +02:00
Andrew Janke
43b3126b5c installer: use timestamped backups to preserve all old zshrcs 2019-06-03 17:18:24 +02:00
Marc Cornellà
153f5e11ed installer: use default color sequences on missing tput
Supposed to be POSIX-compatible. Proved to work in dash, yash and whatever
alpine uses. See https://unix.stackexchange.com/a/371873
2019-06-03 17:18:24 +02:00
Marc Cornellà
220d69b2ce installer: allow configuration of remote URL to clone from 2019-06-03 17:18:24 +02:00
Andrew Janke
aa27430e10 installer: add ability to install from forked & branched repos
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.
2019-06-03 17:18:24 +02:00
Marc Cornellà
a6a093ba2a installer: improve zsh binary path search in setup_shell
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>
2019-06-03 17:18:24 +02:00
Fran
9d2b3ce79f installer: fix for Solus OS and systems with no /etc/shells
Co-authored-by: Fredrik Fornwall <fredrik@fornwall.net>
2019-06-03 17:18:24 +02:00
Marc Cornellà
62216aaa8f installer: use guard clauses in setup_shell for better readability
Guard clauses are if constructs that return early if there is an error
that prevents continuing. This way there isn't a big nesting of if
expressions.
2019-06-03 17:18:23 +02:00
Raf Czlonka
8e10ac4d73 installer: make sure shell in /etc/shells is not commented
Otherwise we risk a situation where a full path to `zsh` is commented, i.e.:

    #/usr/local/bin/zsh
2019-06-03 17:18:23 +02:00
Luca S
73f29087f9 installer: replace the current shell with the new ZSH instance
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.
2019-06-03 17:18:23 +02:00