summary refs log tree commit diff
path: root/pkgs/applications/networking/mailreaders
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-03-11 13:43:50 +0100
committerMatthias Beyer <mail@beyermatthias.de>2018-03-12 16:41:59 +0100
commitbb8e1c4512e6556dfc46fc9af10d005599b84b7f (patch)
tree34d3cea7f5622c53e6b72180be844a77173e4f4b /pkgs/applications/networking/mailreaders
parent29c33ba5af01fbce3aa255dac2328c50a4a1a745 (diff)
downloadnixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar.gz
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar.bz2
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar.lz
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar.xz
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.tar.zst
nixlib-bb8e1c4512e6556dfc46fc9af10d005599b84b7f.zip
lumail: Fix package definition
Includes:

* Package gets a flag to use the debug build
* install phase installs all lua scripts from the package and makes
  lumail find them
* global configuration which is shipped with the package can be
  overridden, if desired
* parallel building enabled
Diffstat (limited to 'pkgs/applications/networking/mailreaders')
-rw-r--r--pkgs/applications/networking/mailreaders/lumail/default.nix46
1 files changed, 39 insertions, 7 deletions
diff --git a/pkgs/applications/networking/mailreaders/lumail/default.nix b/pkgs/applications/networking/mailreaders/lumail/default.nix
index ff85c98d9702..5a333c8d982c 100644
--- a/pkgs/applications/networking/mailreaders/lumail/default.nix
+++ b/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -1,8 +1,28 @@
 { stdenv, fetchurl, pkgconfig, lua5_2, file, ncurses, gmime, pcre-cpp
-, perl, perlPackages }:
+, perl, perlPackages
+, debugBuild ? false
+, alternativeGlobalConfigFilePath ? null
+}:
 
 let
-  version = "3.1";
+  version    = "3.1";
+  binaryName = if debugBuild then "lumail2-debug" else "lumail2";
+  alternativeConfig = builtins.toFile "lumail2.lua"
+    (builtins.readFile alternativeGlobalConfigFilePath);
+
+  globalConfig = if isNull alternativeGlobalConfigFilePath then ''
+    mkdir -p $out/etc/lumail2
+    cp global.config.lua $out/etc/lumail2.lua
+    for n in ./lib/*.lua; do
+      cp "$n" $out/etc/lumail2/
+    done
+  '' else ''
+    ln -s ${alternativeConfig} $out/etc/lumail2.lua
+  '';
+
+  getPath  = type : "${lua}/lib/?.${type};";
+  luaPath  = getPath "lua";
+  luaCPath = getPath "so";
 in
 stdenv.mkDerivation {
   name = "lumail-${version}";
@@ -12,7 +32,9 @@ stdenv.mkDerivation {
     sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
   buildInputs = [
     lua5_2 file ncurses gmime pcre-cpp
     perl perlPackages.JSON perlPackages.NetIMAPClient
@@ -29,16 +51,26 @@ stdenv.mkDerivation {
     sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy
   '';
 
+  buildFlags = if debugBuild then "lumail2-debug" else "";
+
+  installPhase = ''
+    mkdir -p $out/bin || true
+    install -m755 ${binaryName} $out/bin/
+  ''
+  + globalConfig
+  + ''
+    wrapProgram $out/bin/${binaryName} \
+        --prefix LUA_PATH : "${luaPath}" \
+        --prefix LUA_CPATH : "${luaCPath}"
+  '';
+
   makeFlags = [
     "LVER=lua"
     "PREFIX=$(out)"
     "SYSCONFDIR=$(out)/etc"
+    "LUMAIL_LIBS=$(out)/etc/lumail2"
   ];
 
-  postInstall = ''
-    cp lumail2.user.lua $out/etc/lumail2/
-  '';
-
   meta = with stdenv.lib; {
     description = "Console-based email client";
     homepage = https://lumail.org/;