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.nix74
1 files changed, 74 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
new file mode 100644
index 00000000000..7df43f7dab4
--- /dev/null
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -0,0 +1,74 @@
+# 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.mkDerivation rec {
+ version = "2019-09-20";
+ pname = "oh-my-zsh";
+ rev = "6cfaa076272e08b6a81b6358b78d020e48f8a4a6";
+
+ src = fetchgit { inherit rev;
+ url = "https://github.com/robbyrussell/oh-my-zsh";
+ sha256 = "0i1mlw42g2w5pbg6zsl48pdwv1hy5zrwx9kq4w04mynwg7mc9hs5";
+ };
+
+ pathsToLink = [ "/share/oh-my-zsh" ];
+
+ phases = "installPhase";
+
+ 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
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A framework for managing your zsh configuration";
+ longDescription = ''
+ Oh My Zsh is a framework for managing your zsh configuration.
+
+ To copy the Oh My Zsh configuration file to your home directory, run
+ the following command:
+
+ $ cp -v $(nix-env -q --out-path oh-my-zsh | cut -d' ' -f3)/share/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
+ '';
+ homepage = https://ohmyz.sh/;
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ scolobb nequissimus ];
+ };
+}