aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix83
1 files changed, 83 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
new file mode 100644
index 000000000000..73fd6ceeb061
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -0,0 +1,83 @@
+# 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, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "2020-10-15";
+ pname = "oh-my-zsh";
+ rev = "5b717ab3e4bfb627a936d7c04367a39867734d63";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "ohmyzsh";
+ repo = "ohmyzsh";
+ sha256 = "0qm0mdvcvf5s6ypbq7z1x286sdv6ii2yfqvv1dss7zqjbg5j08gz";
+ };
+
+ installPhase = ''
+ outdir=$out/share/oh-my-zsh
+ template=templates/zshrc.zsh-template
+
+ mkdir -p $outdir
+ cp -r * $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
+
+ 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; {
+ 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 ];
+ };
+}