dotfiles/packages/luadbi.nix

48 lines
1.3 KiB
Nix

{lib, fetchurl, lua, sqlite, luaPackages,
libpsql ? null, libmysql ? null,
withpsql ? false, withmysql ? false}:
assert withpsql -> libpsql != null;
assert withmysql -> libmysql != null;
luaPackages.buildLuaPackage rec {
version = "0.5";
name = "luadbi-${version}";
isLibrary = true;
src = fetchurl {
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luadbi/luadbi.${version}.tar.gz";
sha256 = "07ikxgxgfpimnwf7zrqwcwma83ss3wm2nzjxpwv2a1c0vmc684a9";
};
propagatedBuildInputs = [ sqlite ]
++ (lib.optional withpsql [libpsql])
++ (lib.optional withmysql [libmysql]);
unpackPhase = ''
mkdir ./luadbi
tar -xf $src -C ./luadbi
sourceRoot=./luadbi
chmod -R u+w "$sourceRoot";
'';
preBuild = with lib.optionalString; ''
makeFlagsArray=(
sqlite3
${lib.optionalString withpsql "psql"}
${lib.optionalString withmysql "mysql"}
LUA_LDIR="$out/share/lua/${lua.luaversion}"
LUA_INC="-I${lua}/include" LUA_CDIR="$out/lib/lua/${lua.luaversion}"
)
'';
installPhase = ''
mkdir -p $out/lib/lua/${lua.luaversion}
install -p ./*.so DBI.lua $out/lib/lua/${lua.luaversion}
'';
meta = {
homepage = "https://code.google.com/archive/p/luadbi/downloads";
maintainers = [ "Yorick" ];
};
}