Rewrite all rules using pkgs.writeTextFile
- It is more compact and easier to read - Escaping is correctly done This fixs #21 and #22
This commit is contained in:
parent
5ba3174763
commit
13352162de
90
default.nix
90
default.nix
|
@ -32,34 +32,22 @@ rec {
|
||||||
kernel = null;
|
kernel = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixGLNvidiaBumblebee = runCommand "nixGLNvidiaBumblebee" {
|
nixGLNvidiaBumblebee = writeTextFile {
|
||||||
buildInputs = [ nvidia bumblebee ];
|
name = "nixGLNvidiaBumblebee";
|
||||||
|
executable = true;
|
||||||
meta = with pkgs.stdenv.lib; {
|
destination = "/bin/nixGLNvidiaBumblebee";
|
||||||
description = "A tool to launch OpenGL application on system other than NixOS - Nvidia bumblebee version";
|
text = ''
|
||||||
homepage = "https://github.com/guibou/nixGL";
|
|
||||||
};
|
|
||||||
} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cat > $out/bin/nixGLNvidiaBumblebee << FOO
|
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
export LD_LIBRARY_PATH=${nvidia}/lib:\$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${nvidia}/lib:$LD_LIBRARY_PATH
|
||||||
${bumblebee}/bin/optirun --ldpath ${libglvnd}/lib:${nvidia}/lib "\$@"
|
${bumblebee}/bin/optirun --ldpath ${libglvnd}/lib:${nvidia}/lib "$@"
|
||||||
FOO
|
|
||||||
|
|
||||||
chmod u+x $out/bin/nixGLNvidiaBumblebee
|
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
nixNvidiaWrapper = api: runCommand "nix${api}Nvidia" {
|
nixNvidiaWrapper = api: writeTextFile {
|
||||||
buildInputs = [ nvidiaLibsOnly ];
|
name = "nix${api}Nvidia";
|
||||||
|
executable = true;
|
||||||
meta = with pkgs.stdenv.lib; {
|
destination = "/bin/nix${api}Nvidia";
|
||||||
description = "A tool to launch ${api} application on system other than NixOS - Nvidia version";
|
text = ''
|
||||||
homepage = "https://github.com/guibou/nixGL";
|
|
||||||
};
|
|
||||||
} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cat > $out/bin/nix${api}Nvidia << 'FOO'
|
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
${lib.optionalString (api == "Vulkan") ''export VK_LAYER_PATH=${nixpkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d''}
|
${lib.optionalString (api == "Vulkan") ''export VK_LAYER_PATH=${nixpkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d''}
|
||||||
|
|
||||||
|
@ -68,43 +56,31 @@ rec {
|
||||||
nvidiaLibsOnly
|
nvidiaLibsOnly
|
||||||
] ++ lib.optional (api == "Vulkan") nixpkgs.vulkan-validation-layers)
|
] ++ lib.optional (api == "Vulkan") nixpkgs.vulkan-validation-layers)
|
||||||
}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
"\$@"
|
"$@"
|
||||||
FOO
|
|
||||||
|
|
||||||
chmod u+x $out/bin/nix${api}Nvidia
|
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
nixGLNvidia = nixNvidiaWrapper "GL";
|
nixGLNvidia = nixNvidiaWrapper "GL";
|
||||||
|
|
||||||
nixVulkanNvidia = nixNvidiaWrapper "Vulkan";
|
nixVulkanNvidia = nixNvidiaWrapper "Vulkan";
|
||||||
|
|
||||||
nixGLIntel = runCommand "nixGLIntel" {
|
nixGLIntel = writeTextFile {
|
||||||
buildInputs = [ mesa_drivers ];
|
name = "nixGLIntel";
|
||||||
|
executable = true;
|
||||||
meta = with pkgs.stdenv.lib; {
|
destination = "/bin/nixGLIntel";
|
||||||
description = "A tool to launch OpenGL application on system other than NixOS - Intel version";
|
text = ''
|
||||||
homepage = "https://github.com/guibou/nixGL";
|
|
||||||
};
|
|
||||||
} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cat > $out/bin/nixGLIntel << FOO
|
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
export LIBGL_DRIVERS_PATH=${mesa_drivers}/lib/dri
|
export LIBGL_DRIVERS_PATH=${mesa_drivers}/lib/dri
|
||||||
export LD_LIBRARY_PATH=${mesa_drivers}/lib:\$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${mesa_drivers}/lib:$LD_LIBRARY_PATH
|
||||||
"\$@"
|
"$@"
|
||||||
FOO
|
|
||||||
|
|
||||||
chmod u+x $out/bin/nixGLIntel
|
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
nixVulkanIntel = runCommand "nixVulkanIntel" {
|
nixVulkanIntel = writeTextFile {
|
||||||
meta = with pkgs.stdenv.lib; {
|
name = "nixVulkanIntel";
|
||||||
description = "A tool to launch Vulkan application on system other than NixOS - Intel version";
|
executable = true;
|
||||||
homepage = "https://github.com/guibou/nixGL";
|
destination = "/bin/nixVulkanIntel";
|
||||||
};
|
text = ''
|
||||||
} ''
|
|
||||||
mkdir -p "$out/bin"
|
|
||||||
cat > "$out/bin/nixVulkanIntel" << EOF
|
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
if [ ! -z "$LD_LIBRARY_PATH" ]; then
|
if [ ! -z "$LD_LIBRARY_PATH" ]; then
|
||||||
echo "Warning, nixVulkanIntel overwriting existing LD_LIBRARY_PATH" 1>&2
|
echo "Warning, nixVulkanIntel overwriting existing LD_LIBRARY_PATH" 1>&2
|
||||||
|
@ -117,12 +93,10 @@ rec {
|
||||||
xorg.libxshmfence
|
xorg.libxshmfence
|
||||||
wayland
|
wayland
|
||||||
gcc.cc
|
gcc.cc
|
||||||
]}:\$LD_LIBRARY_PATH
|
]}:$LD_LIBRARY_PATH
|
||||||
exec "\$@"
|
exec "$@"
|
||||||
EOF
|
'';
|
||||||
chmod u+x "$out/bin/nixVulkanIntel"
|
};
|
||||||
${shellcheck}/bin/shellcheck "$out/bin/nixVulkanIntel"
|
|
||||||
'';
|
|
||||||
|
|
||||||
nixGLCommon = nixGL:
|
nixGLCommon = nixGL:
|
||||||
runCommand "nixGLCommon" {
|
runCommand "nixGLCommon" {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user