aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix')
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix99
1 files changed, 54 insertions, 45 deletions
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index 4c4fbfaefef..f1de3ee8214 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -1,59 +1,68 @@
# This script was inspired by the ArchLinux User Repository package:
#
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git
-{ stdenv, fetchgit }:
+{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
- version = "2020-06-02";
+ version = "2020-09-12";
pname = "oh-my-zsh";
- rev = "c58572d5fe51b3ba09801837b6eee2cb6f0bf913";
+ rev = "8a93c89bda7e244ed5d32d5b01bd5f72ab695fbf";
- src = fetchgit { inherit rev;
- url = "https://github.com/ohmyzsh/ohmyzsh";
- sha256 = "1gvw90ma96wrg6bpphdgfqfhrgf5327q7dwqjmxxy67xspczm9v4";
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "ohmyzsh";
+ repo = "ohmyzsh";
+ sha256 = "0azm4xp5y6w41jbl4342rmqc5hdrg0rz7pmwlilps44k8xdvml7p";
};
- pathsToLink = [ "/share/oh-my-zsh" ];
+ installPhase = ''
+ outdir=$out/share/oh-my-zsh
+ template=templates/zshrc.zsh-template
- phases = "installPhase";
+ mkdir -p $outdir
+ cp -r * $outdir
+ cd $outdir
- installPhase = ''
- outdir=$out/share/oh-my-zsh
- template=templates/zshrc.zsh-template
-
- mkdir -p $outdir
- cp -r $src/* $outdir
- cd $outdir
-
- rm LICENSE.txt
- rm -rf .git*
-
- chmod -R +w templates
-
- # Change the path to oh-my-zsh dir and disable auto-updating.
- sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
- -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
- $template
-
- # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
- # them, if found.
- cat >> $template <<- EOF
-
- # Load the variables.
- if [ -f ~/.zsh_variables ]; then
- . ~/.zsh_variables
- fi
-
- # Load the functions.
- if [ -f ~/.zsh_funcs ]; then
- . ~/.zsh_funcs
- fi
-
- # Load the aliases.
- if [ -f ~/.zsh_aliases ]; then
- . ~/.zsh_aliases
- fi
- EOF
+ rm LICENSE.txt
+ rm -rf .git*
+
+ chmod -R +w templates
+
+ # Change the path to oh-my-zsh dir and disable auto-updating.
+ sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
+ -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
+ $template
+
+ chmod +w oh-my-zsh.sh
+
+ # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to
+ # modify the directory.
+ cat >> oh-my-zsh.sh <<- EOF
+
+ # Undefine functions that don't work on Nix.
+ unfunction uninstall_oh_my_zsh
+ unfunction upgrade_oh_my_zsh
+ EOF
+
+ # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
+ # them, if found.
+ cat >> $template <<- EOF
+
+ # Load the variables.
+ if [ -f ~/.zsh_variables ]; then
+ . ~/.zsh_variables
+ fi
+
+ # Load the functions.
+ if [ -f ~/.zsh_funcs ]; then
+ . ~/.zsh_funcs
+ fi
+
+ # Load the aliases.
+ if [ -f ~/.zsh_aliases ]; then
+ . ~/.zsh_aliases
+ fi
+ EOF
'';
meta = with stdenv.lib; {