summaryrefslogtreecommitdiff
path: root/tools/install.sh
AgeCommit message (Collapse)Author
2019-06-03installer: add ability to skip the default shell changeMarc Cornellà
Co-authored-by: Marshall Ford <inbox@marshallford.me> Co-authored-by: Joel Kuzmarski <leoj3n@gmail.com>
2019-06-03installer: use timestamped backups to preserve all old zshrcsAndrew Janke
2019-06-03installer: use default color sequences on missing tputMarc Cornellà
Supposed to be POSIX-compatible. Proved to work in dash, yash and whatever alpine uses. See https://unix.stackexchange.com/a/371873
2019-06-03installer: allow configuration of remote URL to clone fromMarc Cornellà
2019-06-03installer: add ability to install from forked & branched reposAndrew Janke
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-03installer: improve zsh binary path search in setup_shellMarc Cornellà
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-03installer: fix for Solus OS and systems with no /etc/shellsFran
Co-authored-by: Fredrik Fornwall <fredrik@fornwall.net>
2019-06-03installer: use guard clauses in setup_shell for better readabilityMarc Cornellà
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-03installer: make sure shell in /etc/shells is not commentedRaf Czlonka
Otherwise we risk a situation where a full path to `zsh` is commented, i.e.: #/usr/local/bin/zsh
2019-06-03installer: replace the current shell with the new ZSH instanceLuca S
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-03installer: abstract error messagesMarc Cornellà
2019-06-03installer: fix for failed chsh quitting the installationMarc Cornellà
2019-06-03installer: extract most code into functionsMarc Cornellà
2019-06-03installer: reorganise and add commentsMarc Cornellà
2019-06-03installer: use tabs to allow future heredocsMarc Cornellà
This will allow us to use tab stripping heredocs with `<<-'. See http://www.tldp.org/LDP/abs/html/here-docs.html#EX71A Add editorconfig file to enforce this style. See http://editorconfig.org for more information.
2019-06-03installer: use exit-on-error from the beginningMarc Cornellà
2019-04-18Remove dots from installer URLs (#7780)Guillermo Azurdia
2019-02-25Updating Oh My Zsh shop URLs (#7619)Robby Russell
* 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
2019-01-15installer: make TEST_CURRENT_SHELL use basename (#7514)Jackson Delahunt
Fixes #7492
2018-07-01Login shell after install (#5314)Joel Kuzmarski
Otherwise these files are not sourced: 1. /etc/zprofile 2. ~/.zprofile 3. /etc/zlogin 4. ~/.zlogin 5. ~/.zlogout 6. /etc/zlogout
2018-06-13Quote $ZSH where necessary in install script (#6587)Dan Wallis
Quote $ZSH where necessary in install script
2018-05-07fix bug for check zsh (#6798)ningwei1993
2018-05-05installer: check if zsh in path instead of /etc/shellsMarc Cornellà
Fixes #4955 Closes #5931 Closes #6398 Co-authored-by: Void <vst4rbot@gmail.com> Co-authored-by: Kaleb Elwert <belak@coded.io>
2018-04-17[installer] use `command -v` to check for gitMarc Cornellà
Quick fix to the script not finding git due to hash. Solves #6697.
2017-11-01Use HTTPS for Planet Argon links (#6326)Doug Yun
2016-06-16Remove undesirable hardcoding of PATH into zshrc (#4925)Felipe Vargas
See robbyrussell@b67961d
2016-05-31installer: fix ordering of cygwin msys git check (#4557)Andrew Janke
2015-10-21Fix syntax error in #4515 on certain shellsMarc Cornellà
Drops the `function` keyword and uses only `func(){}` syntax as per the POSIX specification: http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_09_05 Related: #4531
2015-10-21Revert "Make install script safer"Marc Cornellà
This reverts commit c9d93757e82785a0fd1e0d1222f5d61e01849703, which makes it fail with a syntax error: sh: 1: Syntax error: "(" unexpected
2015-10-20Merge pull request #4507 from WhyEee/fix-no-tputMarc Cornellà
Fix install.sh/upgrade.sh for tput-less systems
2015-10-20Make install script saferBrian J Brennan
This changeset wraps all of the commands in tools/install.sh in a function and then calls that function as the last line of the script. The current install instructions ask the user to download the install script using `curl` and pass the result to `sh`. This is totally fine (as long as both the instructions and the script itself are served using HTTPS), but the script should be written in a way such that it doesn't start trying to actually *do* anything until the very last line. The reason is due to the way `curl` work: if the socket drops before the request is complete (server abruptly hangs up, client's internet flakes out, etc.), `curl` will return the partial data that it received. Here is an example of that: ![partial file execution](https://cldup.com/qU_Mnh2GmT.png) A way this might cause issues for tools/install.sh is if the connection drops after cloning but before the repository (L53-56). The .zshrc configuration will not be copied and the shell will not be changed, but if the user tries to run the install script again it will claim oh-my-zsh is already installed (L31-39). While this is not a particularly dangerous error condition (the user can just delete .oh-my-zsh and re-run), it can certainly be confusing for new users. This also helps future-proof the script for a time when it might need to use a "dangerous" command, e.g. `rm`, and we want to make sure it happens in the most transactional way possible.
2015-10-16Fix install.sh/upgrade.sh for tput-less systemsYannick Eckey
@fcrozat's original fix assumes `which` not to output anything to STDOUT in case the command is not found. That is not necessarily true on all systems. A better solution is to check the return value instead. Fixes #4376
2015-09-28installer: don't bail on errors in color setupAndrew Janke
This is a hack to keep the installer working on systems without tput/terminfo.
2015-09-26Merge pull request #3646 from apjanke/installer-cygwin-support-3Robby Russell
Add Cygwin support to installer.
2015-09-23Merge branch 'master' into installer-cygwin-support-3Andrew Janke
Conflicts: tools/install.sh
2015-09-21Do not fail if tput is not availableFrederic Crozat
Fixes issue #4376
2015-09-19Merge branch 'master' into installer-portable-colorsAndrew Janke
2015-09-19Merge pull request #3889 from leycec/compauditRobby Russell
Repair `zsh` Path Permissions on `oh-my-zsh` Startup under Cygwin
2015-09-03Merge changes from #4241 into installer-portable-colorsAndrew Janke
Conflicts: tools/install.sh tools/upgrade.sh
2015-09-03Add Cygwin support to installer.Andrew Janke
* Balk at incompatible Windows/MSYS git * Test for chsh presence before trying to use it * Replace non-portable `[[ ... ]]` and `[ x = *pattern* ]` constructs
2015-08-30Merge pull request #4241 from heartinpiece/masterRobby Russell
Check if Zsh is installed prior to installing Oh My Zsh
2015-08-30Merge pull request #3613 from apjanke/remove-sed-iRobby Russell
Installer: Remove "sed -i" for portability and hygiene
2015-08-27installer: switch twitter link to httpsAndrew Janke
2015-08-12Check if Zsh is installed prior to installing Oh My ZshChang Hyun Park
Check if Zsh is installed before installing anything else. New-commers, or people who don't read the disclaimers(ex. me) will go straight to stack overflow if chsh -s returns an error.
2015-07-20Cygwin-specific "chsh" installation issue fixed.leycec
Installation previously assumed the existence of a "chsh" command in the current ${PATH}. Since Cygwin does *NOT* provide this command, installation now tests for the existence of this command before attempting to run it.
2015-07-20Secure umask enforced during installation.leycec
For safety, a umask of 022 prohibiting both group and other writability is now enforced during OMZ installation. In theory, this should reduce the likelihood of subsequent compinit() failures due to insecure directory permissions under all platforms except for default Cygwin installations (in which Windows ACLs override POSIX umasks).
2015-07-06installer: use terminfo for portable escape sequencesAndrew Janke
Do not use terminal visual effects if not connected to a terminal.
2015-07-06install.sh: use portable printf instead of echoAndrew Janke
2015-05-05Fix 'chsh' by checking '/etc/shells' instead of using 'which'Pablo Tamarit
fix test for chsh in install in case $SHELL is zsh but not the last one in /etc/shells fixes #3026 fixes #3779 fixes #3780
2015-02-20install.sh: Replace nonstandard "sed -i" with sed + mv commands. Makes ↵Andrew Janke
portable to systems whose sed lacks "-i", like OpenBSD.