about summary refs log tree commit diff
path: root/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
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 000000000000..32a1f8a3ea66
--- /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 = "2018-11-27";
+  name = "oh-my-zsh-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/robbyrussell/oh-my-zsh";
+    rev = "2614b7ecdfe8b8f0cbeafffefb5925196f4011d4";
+    sha256 = "0yfk0x7xj640xn0klyggrncvmmm3b44ldfxfrr4mcixb1scfv5lb";
+  };
+
+  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 ];
+  };
+}