Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Accept alternate install paths via ZSH variable #1085

Merged
merged 4 commits into from

3 participants

@avit

I added an option to use the ZSH environment variable at install-time to set the destination.

For example I like to keep things like oh-my-zsh as submodules under my .dotfiles.

@avit

I've rebased this to your master again, let me know if you still want to merge it.

Part of #1086 which depends on this, but it's a separate issue so you can merge it independently.

@avit

@robbyrussell I've just rebased this too, please comment, merge, or close.

@robbyrussell
Owner

@avit Can you move the README details under the "manual" section? I want to keep the suggested/easy way simple for folks.

@mcornella

Hi! Right now the install script already supports changing the directory; the only change necessary is in the README file.

I think its place is in the "automatic" section since using the manual way you don't install it running install.sh but rather using git clone, where you can specify the output directory.

I do suggest changing the command though, using export before running the script. Something like this:

optional: change install directory

You can change the install directory if you run export ZSH=<path to directory> before you run the install script.

though I don't know if export is platform or shell independent.

@avit

Sorry, I lost track of this ticket... thanks for the bump. I'll take a look and clean it up so we can close it.

@robbyrussell
Owner

@avit How's this coming along? :-)

@avit

Please see my questions on d4a9467#commitcomment-5609476

@avit

Right now the install script already supports changing the directory

No, it looks like master only checks if it's already installed in the ZSH location, and quits if it already exists. But it'll still clone to the default ~/.oh-my-zsh location.

I think its place is in the "automatic" section since using the manual way you don't install it running install.sh but rather using git clone, where you can specify the output directory.

Right, I agree. This is an option for the automatic installer which isn't used in the manual steps.

I do suggest changing the command though, using export before running the script.

I think this is only necessary because of the way d4a9467 was done, but if we prefer to document it using "export" on a separate line so the install.sh pipeline can be used unchanged as cut-and-paste from the README I'm fine with that. However:

  • sh, bash, ksh, etc. use export ZSH=value
  • csh, tcsh, etc. use setenv ZSH value

In any case, if someone is doing this, they probably know what they're doing.

@robbyrussell robbyrussell merged commit 9cb14dc into from
@avit avit deleted the branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Mar 8, 2014
  1. @avit
  2. @avit

    Write install path into .zshrc

    avit authored
  3. @avit

    Abort installer on errors

    avit authored
  4. @avit

    Document alternate install paths via ZSH variable

    avit authored
    Uses environment variable $ZSH to configure install location.
This page is out of date. Refresh to see the latest.
Showing with 26 additions and 10 deletions.
  1. +13 −2 README.textile
  2. +13 −8 tools/install.sh
View
15 README.textile
@@ -20,9 +20,19 @@ h4. via `wget`
@wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh@
-h3. The manual way
+h4. Optional: change the install directory
+
+The default location is `~/.oh-my-zsh` (hidden in your home directory).
+
+You can change the install directory with the ZSH environment variable, either
+by running `export ZSH=/your/path` before installing, or setting it before the
+end of the install pipeline like this:
+
+@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh@
+h3. The manual way
+
1. Clone the repository
@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@
@@ -35,7 +45,6 @@ h3. The manual way
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
-
4. Set zsh as your default shell:
@chsh -s /bin/zsh@
@@ -46,6 +55,8 @@ h3. Problems?
You _might_ need to modify your PATH in ~/.zshrc if you're not able to find some commands after switching to _Oh My Zsh_.
+If you installed manually or changed the install location, check ZSH in ~/.zshrc
+
h2. Usage
* enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible)
View
21 tools/install.sh
@@ -1,16 +1,18 @@
-ZSH=`/usr/bin/env|grep 'ZSH='|cut -d '=' -f 2`
-if [ -d "$ZSH" ]
+set -e
+
+if [ ! -n $ZSH ]
then
- echo "\033[0;33mYou already have Oh My Zsh installed.\033[0m You'll need to remove $ZSH if you want to install"
- exit
-elif [ -d ~/.oh-my-zsh ]
+ ZSH=~/.oh-my-zsh
+fi
+
+if [ -d $ZSH ]
then
- echo "\033[0;33mYou already have One Oh My Zsh Directory.\033[0m You'll need to remove ~/.oh-my-zsh if you want to clone"
+ echo "\033[0;33mYou already have Oh My Zsh installed.\033[0m You'll need to remove $ZSH if you want to install"
exit
fi
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
-hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh || {
+hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git $ZSH || {
echo "git not installed"
exit
}
@@ -23,7 +25,10 @@ then
fi
echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m"
-cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
+cp $ZSH/templates/zshrc.zsh-template ~/.zshrc
+sed -i -e "/^ZSH=/ c\\
+ZSH=$ZSH
+" ~/.zshrc
echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m"
sed -i -e "/export PATH=/ c\\
Something went wrong with that request. Please try again.