refactor: finish moving ssh-* scripts to own installers
[webi-installers/.git] / pyenv / install.sh
index c89a43ee772bd558ec2009d7b8c894d01aff3ac8..98b1a3e6846ff74b34f6bba5e8323c4140cb36c1 100644 (file)
@@ -1,14 +1,46 @@
 #!/bin/bash
 
-{
-    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
-    if [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then
-        echo 'export PATH="$HOME/.pyenv/bin:$PATH"'>> ~/.zshrc
-        echo 'eval "$(pyenv init -)"'>> ~/.zshrc
-        echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
-    else
-        echo 'export PATH="$HOME/.pyenv/bin:$PATH"'>> ~/.bashrc
-        echo 'eval "$(pyenv init -)"'>> ~/.bashrc
-        echo 'eval "$(pyenv virtualenv-init -)"'>> ~/.bashrc
+function __init_pyenv() {
+    set -e
+    set -u
+
+    curl -fsSL https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
+
+    if [ ! -f ~/.bashrc ] || [ -z "$(grep 'pyenv init' ~/.bashrc)" ]; then
+        echo '' >> ~/.bashrc
+        echo '# added by Webi for pyenv' >> ~/.bashrc
+        echo 'eval "$(pyenv init -)"' >> ~/.bashrc
+        echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
+    fi
+
+    if [ -n "$(command -v zsh)" ]; then
+        touch ~/.zshrc
+        if [ -z "$(grep 'pyenv init' ~/.zshrc)" ]; then
+            echo '' >> ~/.zshrc
+            echo '# added by Webi for pyenv' >> ~/.zshrc
+            echo 'eval "$(pyenv init -)"' >> ~/.zshrc
+            echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
+        fi
+    fi
+
+    if [ -n "$(command -v fish)" ]; then
+        mkdir -p ~/.config/fish
+        touch ~/.config/fish/config.fish
+        if [ -z "$(grep 'pyenv init' ~/.config/fish/config.fish)" ]; then
+            echo '' >> ~/.config/fish/config.fish
+            echo '# added by Webi for pyenv' >> ~/.config/fish/config.fish
+            echo 'pyenv init - | source' >> ~/.config/fish/config.fish
+            echo 'pyenv virtualenv-init - | source' >> ~/.config/fish/config.fish
+        fi
     fi
+
+    mkdir -p ~/.pyenv/bin
+    pathman add ~/.pyenv/bin
+
+    mkdir -p ~/.pyenv/shims
+    pathman add ~/.pyenv/shims
+
+    echo "NOTE: You may also need to CLOSE and RE-OPEN your terminal for pyenv to take effect."
 }
+
+__init_pyenv