Commit graph

125 commits

Author SHA1 Message Date
Marc Cornellà
28148888bf Fix backwards logic in uninstaller once and for all
Really this time :P

Fixes #4533
2015-10-21 16:46:38 +02:00
Marc Cornellà
37e403708c Fix conditional in uninstall prompt 2015-10-21 11:28:12 +02:00
Marc Cornellà
519d043496 Fix syntax error in confirmation prompt of uninstall.sh
We need to use POSIX syntax. This file is no longer executed with zsh.

Fixes #4483.
2015-10-21 11:24:12 +02:00
Marc Cornellà
d1ced94cd6 Fix syntax error in #4515 on certain shells
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-21 10:48:02 +02:00
Marc Cornellà
2e46bc14bc Revert "Make install script safer"
This reverts commit c9d93757e8, which
makes it fail with a syntax error:

  sh: 1: Syntax error: "(" unexpected
2015-10-21 10:36:40 +02:00
Marc Cornellà
684093c441 Merge pull request #4507 from WhyEee/fix-no-tput
Fix install.sh/upgrade.sh for tput-less systems
2015-10-20 23:30:29 +02:00
Marc Cornellà
24e6b10b01 Merge pull request #4505 from arvindch/checked-upgrade
Check for git before trying to upgrade OMZ
2015-10-20 23:29:00 +02:00
Brian J Brennan
eb904994b9 Make install script safer
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-20 14:18:22 -04:00
Marc Cornellà
8418236f6a Merge pull request #4419 from apjanke/installer-termcap-hack
installer: ignore errors in color setup, for FreeBSD portability
2015-10-20 08:30:14 +02:00
Yannick Eckey
4a31b3cf24 Fix install.sh/upgrade.sh for tput-less systems
@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-10-16 22:27:46 +02:00
Arvind Chembarpu
ad9947a4af Check for git before trying to upgrade, as per #4504 2015-10-16 23:19:55 +05:30
Rodrigo Chiossi
ee76ef5b75 Ask for confirmation before uninstall
Prompt the user before removing oh-my-zsh from the system
2015-10-05 18:32:42 -03:00
Andrew Janke
e819a8939d installer: don't bail on errors in color setup
This is a hack to keep the installer working on systems without tput/terminfo.
2015-09-28 08:35:25 -04:00
Robby Russell
85a7c0b4bc Merge pull request #3646 from apjanke/installer-cygwin-support-3
Add Cygwin support to installer.
2015-09-26 09:35:39 -07:00
Andrew Janke
51bd046851 Merge branch 'master' into installer-cygwin-support-3
Conflicts:
	tools/install.sh
2015-09-23 18:53:05 -04:00
Frederic Crozat
4b4f00857a also handle missing tput in upgrade script. 2015-09-22 16:46:22 +02:00
Frederic Crozat
7c3607df08 Do not fail if tput is not available
Fixes issue #4376
2015-09-21 20:02:57 +02:00
Andrew Janke
ab6d7864fb Merge branch 'master' into installer-portable-colors 2015-09-19 15:07:36 -04:00
Robby Russell
1ae3bc3c5a Merge pull request #3889 from leycec/compaudit
Repair `zsh` Path Permissions on `oh-my-zsh` Startup under Cygwin
2015-09-19 08:40:34 -07:00
Andrew Janke
c238da032b Merge changes from #4241 into installer-portable-colors
Conflicts:
	tools/install.sh
	tools/upgrade.sh
2015-09-03 12:50:55 -04:00
Andrew Janke
9d22929141 Add Cygwin support to installer.
* Balk at incompatible Windows/MSYS git
* Test for chsh presence before trying to use it
* Replace non-portable `[[ ... ]]` and `[ x = *pattern* ]` constructs
2015-09-03 12:47:02 -04:00
Robby Russell
30d2cb9bfa Merge pull request #4241 from heartinpiece/master
Check if Zsh is installed prior to installing Oh My Zsh
2015-08-30 21:44:38 -07:00
Robby Russell
2d08e9697b Merge pull request #4249 from KrauseFx/patch-1
Use https instead of http
2015-08-30 21:38:33 -07:00
Robby Russell
1aa4848d13 Merge pull request #3613 from apjanke/remove-sed-i
Installer: Remove "sed -i" for portability and hygiene
2015-08-30 09:13:04 -07:00
Andrew Janke
2b018152a5 installer: switch twitter link to https 2015-08-27 17:17:43 -04:00
Felix Krause
a566f499d2 Use https instead of http 2015-08-16 19:29:58 +02:00
Chang Hyun Park
5cdd4d395b Check if Zsh is installed prior to installing Oh My Zsh
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-08-12 16:47:37 +09:00
leycec
3ec7cc50cd Cygwin-specific "chsh" installation issue fixed.
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-20 00:56:19 -04:00
leycec
70d513d594 Secure umask enforced during installation.
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-20 00:56:19 -04:00
Andrew Janke
20e31fac5a installer: use terminfo for portable escape sequences
Do not use terminal visual effects if not connected to a terminal.
2015-07-06 20:18:32 -04:00
Andrew Janke
02dad1d6d4 install.sh: use portable printf instead of echo 2015-07-06 19:44:59 -04:00
HeroCC
5b20212df5 No input for Update Check defaults to Yes 2015-06-10 14:36:52 +02:00
Pablo Tamarit
1e9c522ae8 Fix 'chsh' by checking '/etc/shells' instead of using 'which'
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-05-05 19:49:19 +02:00
Andrew Janke
1e4a59e848 install.sh: Replace nonstandard "sed -i" with sed + mv commands. Makes portable to systems whose sed lacks "-i", like OpenBSD. 2015-02-20 02:34:54 -05:00
Robby Russell
339b2749ef Merge pull request #3353 from mizabrik/master
Save ZSH path in newly created .zshrc
2015-02-10 11:21:15 -08:00
Nicholas T
a2c2947ff7 Fast installation time by shallow copying git repo
Use `--depth=1` to clone just the lastest version rather than every version in git.
2015-01-15 09:09:41 +10:00
Mark Feltner
83553597a1 fix(tools/check_for_upgrade): Don't source profile
Reverts #2296, but mostly #1883.

There is no need to source ~/.profile when this script is read. oh-my-zsh writes no configuration data in ~/.profile.

If the user wishes to use data within ~/.profile, then they should source it in another place.

Fixes #2315
2014-12-15 18:45:50 +01:00
mizabrik
c6a8b2ea6d Save ZSH path in newly created .zshrc 2014-11-28 19:40:56 +03:00
Robby Russell
57ff83db59 Merge pull request #2946 from moinakg/master
Solaris portability tweaks.
2014-11-06 09:26:48 -08:00
Moinak Ghosh
3a39732845 Change to epoch target in days instead of seconds. 2014-10-14 12:05:01 +05:30
Moinak Ghosh
90762eee49 Convert epoch_target from days to seconds. 2014-09-17 11:11:48 +05:30
Moinak Ghosh
5f38a537ce Update Solaris changes to use OSTYPE and zsh datetime module. 2014-09-16 22:29:52 +05:30
Robby Russell
c1cd9cb126 Merge pull request #3049 from strycore/master
Prevent chsh from running when $SHELL is already zsh
2014-08-31 11:42:40 -07:00
Robby Russell
671bd0cf4f Link to swag in installer... shameless profiting 2014-08-31 11:32:07 -07:00
Robby Russell
9f8d7d85c2 Adding link to the store for swag in upgrade process 2014-08-31 11:30:30 -07:00
Mathieu Comandon
91ba6d9887 Don't try running chsh if user already runs zsh 2014-08-21 12:47:48 +02:00
Fredrik Fornwall
dac2a6e27a Replace /usr/bin/env with env
Some environments (such as Android) does not have /usr/bin.
2014-08-20 23:52:05 +02:00
Moinak Ghosh
5e328e3a9c Solaris portability tweaks. 2014-07-11 18:41:49 +05:30
n.st
a9e1d9aa89 Cancel upgrade if $ZSH is not writable
from #2360
2014-06-04 19:37:14 +02:00
Mark Feltner
8d976e02b1 fix(tools/check_for_upgrade): Don't source profile
Reverts #2296, but mostly #1883.

There is no need to source ~/.profile when this script is read. oh-my-zsh writes no configuration data in ~/.profile.

If the user wishes to use data within ~/.profile, then they should source it in another place.

Fixes #2315
2014-05-24 19:51:08 +02:00