summaryrefslogtreecommitdiff
path: root/pkgs/astal/builder.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/astal/builder.nix')
-rw-r--r--pkgs/astal/builder.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgs/astal/builder.nix b/pkgs/astal/builder.nix
new file mode 100644
index 0000000..a78d602
--- /dev/null
+++ b/pkgs/astal/builder.nix
@@ -0,0 +1,69 @@
+{
+ pkgs,
+ astal,
+ name,
+ src,
+ extraLuaPackages ? (ps: []),
+ extraPackages ? [],
+}: let
+ lua = pkgs.lua.withPackages (ps:
+ (extraLuaPackages ps)
+ ++ [
+ ps.lgi
+ (ps.luaPackages.toLuaModule (pkgs.stdenvNoCC.mkDerivation {
+ name = "astal";
+ src = "${astal}/lang/lua/astal";
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/share/lua/${ps.lua.luaversion}/astal
+ cp -r * $out/share/lua/${ps.lua.luaversion}/astal
+ '';
+ }))
+ (ps.luaPackages.toLuaModule (pkgs.stdenvNoCC.mkDerivation {
+ inherit src name;
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/share/lua/${ps.lua.luaversion}
+ cp -r * $out/share/lua/${ps.lua.luaversion}
+ '';
+ }))
+ ]);
+
+ script = ''
+ #!${lua}/bin/lua
+ require "init"
+ '';
+in
+ pkgs.stdenvNoCC.mkDerivation {
+ inherit src name;
+
+ nativeBuildInputs = with pkgs; [
+ wrapGAppsHook
+ gobject-introspection
+ ];
+
+ buildInputs =
+ extraPackages
+ ++ [
+ lua
+ astal.packages.${pkgs.system}.io
+ astal.packages.${pkgs.system}.astal3
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ cp -r * $out/bin
+ echo '${script}' > astal-lua
+ install -m 755 astal-lua $out/bin/${name}
+
+ runHook postInstall
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${pkgs.lib.makeBinPath extraPackages}"
+ )
+ '';
+ }