about summary refs log tree commit diff
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-03-18 14:32:35 +0100
committeraszlig <aszlig@redmoonstudios.org>2015-03-18 14:32:35 +0100
commitbd32a45879d4099d0dbb8f0f493b2c888d047d9c (patch)
treeb8beff77e80213791d4935e5aa3953868e6c2815
parent95ff01f8965fd3b09953c75d16c4e2e7af38aa41 (diff)
Refactor own Vim version into its own module.
Gets rid of my own crap in the vuizvui pkgs namespace and makes it
easier for other users to selectively use my Vim configuration.

It's still not as fleshed out as I wish it would be, but let's do that
later if needed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/user/aszlig/profiles/base.nix3
-rw-r--r--modules/user/aszlig/programs/vim/default.nix (renamed from pkgs/vim/default.nix)80
-rw-r--r--pkgs/default.nix1
4 files changed, 48 insertions, 37 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 2cc3235f..a67365bc 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -3,6 +3,7 @@
   ./user/aszlig/profiles/workstation
   ./user/aszlig/programs/gajim
   ./user/aszlig/programs/git
+  ./user/aszlig/programs/vim
   ./user/aszlig/programs/zsh
   ./user/aszlig/services/i3
   ./user/aszlig/services/slim
diff --git a/modules/user/aszlig/profiles/base.nix b/modules/user/aszlig/profiles/base.nix
index aa984544..b264cdd3 100644
--- a/modules/user/aszlig/profiles/base.nix
+++ b/modules/user/aszlig/profiles/base.nix
@@ -39,6 +39,8 @@ in {
       ServerAliveInterval 60
     '';
 
+    vuizvui.user.aszlig.programs.vim.enable = true;
+
     services.nixosManual.showManual = false;
 
     environment.systemPackages = with pkgs; [
@@ -50,7 +52,6 @@ in {
       psmisc
       unrar
       unzip
-      vim
       vlock
       wget
       xz
diff --git a/pkgs/vim/default.nix b/modules/user/aszlig/programs/vim/default.nix
index f753b453..231e00ea 100644
--- a/pkgs/vim/default.nix
+++ b/modules/user/aszlig/programs/vim/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, lib, writeTextFile, writeText, buildEnv
-, fetchurl, fetchFromGitHub, vim_configurable
-}:
+{ config, pkgs, lib, ... }:
 
 let
+  cfg = config.vuizvui.user.aszlig.programs.vim;
+
   fetchVimScript = { srcId, sha256, type, name }: let
     baseUrl = "http://www.vim.org/scripts/download_script.php";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       name = "script${toString srcId}.vim";
       url = "${baseUrl}?src_id=${toString srcId}";
       inherit sha256;
     };
-  in stdenv.mkDerivation {
+  in pkgs.stdenv.mkDerivation {
     name = "vim-${type}-${toString srcId}";
     buildCommand = ''
       install -vD -m 0644 "${src}" "$out/${type}/${name}.vim"
     '';
   };
 
-  extractSubdir = subdir: src: stdenv.mkDerivation {
+  extractSubdir = subdir: src: pkgs.stdenv.mkDerivation {
     name = "${src.name}-subdir";
     phases = [ "unpackPhase" "installPhase" ];
     inherit src;
@@ -26,7 +26,7 @@ let
     '';
   };
 
-  mkVimPlugins = plugins: buildEnv {
+  mkVimPlugins = plugins: pkgs.buildEnv {
     name = "vim-plugins";
     paths = with lib; mapAttrsToList (const id) plugins;
     ignoreCollisions = true;
@@ -36,84 +36,84 @@ let
   };
 
   pluginDeps = {
-    vimAddonMwUtils = fetchFromGitHub {
+    vimAddonMwUtils = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-mw-utils";
       rev = "0c5612fa31ee434ba055e21c76f456244b3b5109";
       sha256 = "147s1k4n45d3x281vj35l26sv4waxjlpqdn83z3k9n51556h1d45";
     };
 
-    vimAddonCompletion = fetchFromGitHub {
+    vimAddonCompletion = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-completion";
       rev = "80f717d68df5b0d7b32228229ddfd29c3e86e435";
       sha256 = "08acffzy847w8b5j8pdw6qsidm2859ki5q351n4r7fkr969p80mi";
     };
 
-    vimAddonActions = fetchFromGitHub {
+    vimAddonActions = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-actions";
       rev = "a5d20500fb8812958540cf17862bd73e7af64936";
       sha256 = "1wfkwr89sn2w97i94d0dqylcg9mr6pirjadi0a4l492nfnsh99bc";
     };
 
-    vimAddonBackgroundCmd = fetchFromGitHub {
+    vimAddonBackgroundCmd = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-background-cmd";
       rev = "14df72660a95804a57c02b9ff0ae3198608e2491";
       sha256 = "09lh6hqbx05gm7njhpqvhqdwig3pianq9rddxmjsr6b1vylgdgg4";
     };
 
-    vimAddonErrorFormats = fetchFromGitHub {
+    vimAddonErrorFormats = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-errorformats";
       rev = "dcbb203ad5f56e47e75fdee35bc92e2ba69e1d28";
       sha256 = "159zqm69fxbxcv3b2y99g57bf20qrzsijcvb5rzy2njxah3049m1";
     };
 
-    vimAddonToggleBuffer = fetchFromGitHub {
+    vimAddonToggleBuffer = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-toggle-buffer";
       rev = "a1b38b9c5709cba666ed2d84ef06548f675c6b0b";
       sha256 = "1xq38kfdm36c34ln66znw841q797w5gm8bpq1x64bsf2h6n3ml03";
     };
 
-    vimAddonGotoThingAtCursor = fetchFromGitHub {
+    vimAddonGotoThingAtCursor = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-goto-thing-at-cursor";
       rev = "f052e094bdb351829bf72ae3435af9042e09a6e4";
       sha256 = "1ksm2b0j80zn8sz2y227bpcx4jsv76lwgr2gpgy2drlyqhn2vlv0";
     };
 
-    vimAddonViews = fetchFromGitHub {
+    vimAddonViews = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-views";
       rev = "d1383ad56d0a07d7350880adbadf9de501729fa8";
       sha256 = "09gqh7w5rk4lmra706schqaj8dnisf396lpsipm7xv6gy1qbslnv";
     };
 
-    vimAddonSwfMill = fetchFromGitHub {
+    vimAddonSwfMill = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-swfmill";
       rev = "726777e02cbe3ad8f82e37421fb37674f446a148";
       sha256 = "0ablzl5clgfzhzwvzzbaj0cda0b4cyrj3pbv02f26hx7rfnssaqm";
     };
 
-    vimHaxeSyntax = fetchFromGitHub {
+    vimHaxeSyntax = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-haxe-syntax";
       rev = "500acc2f2ab92d77ff6cd04fdc7868800c033dfa";
       sha256 = "1ipm0igplplfmscm3bk95qpf9rw71h133l9shmw54mxr4h0ymnmj";
     };
 
-    tlib = fetchFromGitHub {
+    tlib = pkgs.fetchFromGitHub {
       owner = "tomtom";
       repo = "tlib_vim";
       rev = "bc4097bd38c4bc040fe1e74df68dec6c9adfcb6a";
       sha256 = "19v7bgmkk4k2g1z62bd0kky29xxfq96l7wfrl27wb2zijlhbrnpz";
     };
 
-    vamStub = writeTextFile {
+    vamStub = pkgs.writeTextFile {
       name = "vam-stub";
       destination = "/autoload/vam.vim";
       text = ''
@@ -127,42 +127,42 @@ let
   };
 
   plugins = mkVimPlugins (pluginDeps // {
-    vimErl = fetchFromGitHub {
+    vimErl = pkgs.fetchFromGitHub {
       owner = "jimenezrick";
       repo = "vimerl";
       rev = "823bf8cb515bb10396c705cdc017aa9121cc4d12";
       sha256 = "0sybkx8iy8qhr6nlwn52j7zd5v99rn0b8wbg43d112z2px4yq5x3";
     };
 
-    vimHaxe = fetchFromGitHub {
+    vimHaxe = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-haxe";
       rev = "8efc705db41a01713d67d437f29866a1ff831e8a";
       sha256 = "15kv13gvpgf23p0566qrlw7gmpir2z7g5dnkfs1knmcwzw45am5d";
     };
 
-    factor = extractSubdir "misc/vim" (fetchFromGitHub {
+    factor = extractSubdir "misc/vim" (pkgs.fetchFromGitHub {
       owner = "slavapestov";
       repo = "factor";
       rev = "0d6f70cc7cf35cc627ee78886e2932091a651fe6";
       sha256 = "0lmqzvrmwgmxpcpwgn59y033sf4jybmw3lffbjwww5d7ch90333q";
     });
 
-    opaLang = extractSubdir "tools/editors/vim" (fetchFromGitHub {
+    opaLang = extractSubdir "tools/editors/vim" (pkgs.fetchFromGitHub {
       owner = "MLstate";
       repo = "opalang";
       rev = "94e4e6d9d8da9a72214f4f28dd1ffa1a987997eb";
       sha256 = "0d6b67868cfqakkz63y5ynpz549lbpfzc3c3x7kx3ffsv10xy3bb";
     });
 
-    lslvim = fetchFromGitHub {
+    lslvim = pkgs.fetchFromGitHub {
       owner = "sukima";
       repo = "LSLvim";
       rev = "f269de39a1c713a43470e90d0ec78208c0f05e0b";
       sha256 = "1plwx5id3jsj4y6yhshlf3rishxhf1b9k47g2cpzaczvqb5bl40w";
     };
 
-    vimSyntaxShakespeare = fetchFromGitHub {
+    vimSyntaxShakespeare = pkgs.fetchFromGitHub {
       owner = "pbrisbin";
       repo = "vim-syntax-shakespeare";
       rev = "29085ae94ee3dbd7f39f2a7705d86692ef5bc365";
@@ -190,14 +190,14 @@ let
       type = "indent";
     };
 
-    nixAddon = fetchFromGitHub {
+    nixAddon = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-nix";
       rev = "7b0a376bb1797fef8da2dc14e768f318bcb671e8";
       sha256 = "00dsba2a0az9bw1sni12km1vdga9x32dapxaj5gmq98hzqlhklyp";
     };
 
-    urwebAddon = fetchFromGitHub {
+    urwebAddon = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-urweb";
       rev = "49ea3960a9924a5dd7ff70956d1a7c0479a55773";
@@ -218,14 +218,14 @@ let
       type = "syntax";
     };
 
-    elmVim = fetchFromGitHub {
+    elmVim = pkgs.fetchFromGitHub {
       owner = "lambdatoast";
       repo = "elm.vim";
       rev = "ad556c97e26072b065825852ceead0fe6a1f7d7c";
       sha256 = "19k6b6m5ngm5qn2f3p13hzjyvha53fpdgq691z8n0lwfn8831b21";
     };
 
-    flake8 = fetchFromGitHub {
+    flake8 = pkgs.fetchFromGitHub {
       owner = "nvie";
       repo = "vim-flake8";
       rev = "293613dbe731a2875ce93739e7b64ee504d8bbab";
@@ -315,7 +315,7 @@ let
     autocmd BufWritePost * if &ft ==# 'python' | call Flake8() | endif
   '';
 
-  vimrc = writeText "vimrc" ''
+  vimrc = pkgs.writeText "vimrc" ''
     ${generic}
     ${plugin}
 
@@ -326,8 +326,18 @@ let
     ${misc}
   '';
 
-in lib.overrideDerivation vim_configurable (o: {
-  postInstall = (o.postInstall or "") + ''
-    ln -sf "${vimrc}" "$out/share/vim/vimrc"
-  '';
-})
+  patchedVim = lib.overrideDerivation pkgs.vim_configurable (o: {
+    postInstall = (o.postInstall or "") + ''
+      ln -sf "${vimrc}" "$out/share/vim/vimrc"
+    '';
+  });
+
+in {
+  options.vuizvui.user.aszlig.programs.vim = {
+    enable = lib.mkEnableOption "aszlig's Vim";
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = lib.singleton patchedVim;
+  };
+}
diff --git a/pkgs/default.nix b/pkgs/default.nix
index d156deff..2e6b3550 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -18,7 +18,6 @@ let
     tkabber_urgent_plugin = callPackage ./tkabber-urgent-plugin { };
     tomahawk = callPackage ./tomahawk { };
     twitchstream = callPackage ./twitchstream { };
-    vim = callPackage ./vim { };
 
     vuizvuiKernelPatches = {
       bfqsched = callPackage ./kpatches/bfqsched.nix { };