nixos-config/packages/bitwig-studio/bitwig-bubblewrap.nix

33 lines
1.1 KiB
Nix

{ stdenv, bindfs, bubblewrap, mktemp, writeShellScript, bitwig-studio }:
stdenv.mkDerivation {
inherit (bitwig-studio) pname version;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
dontPatchELF = true;
dontStrip = true;
installPhase = let
wrapper = writeShellScript "bitwig-studio" ''
echo "Creating temporary directory"
TMPDIR=$(${mktemp}/bin/mktemp --directory)
echo "Temporary directory: $TMPDIR"
echo "Copying default Vamp Plugin settings"
cp -r ${bitwig-studio}/libexec/resources/VampTransforms $TMPDIR
echo "Changing permissions to be writable"
chmod -R u+w $TMPDIR/VampTransforms
echo "Starting Bitwig Studio in Bubblewrap Environment"
${bubblewrap}/bin/bwrap --dev-bind / / --bind $TMPDIR/VampTransforms ${bitwig-studio}/libexec/resources/VampTransforms ${bitwig-studio}/bin/bitwig-studio
echo "Bitwig exited, removing temporary directory"
rm -rf $TMPDIR
'';
in ''
mkdir -p $out/bin
cp ${wrapper} $out/bin/bitwig-studio
ln -s ${bitwig-studio}/bin/bitwig-studio $out/bin/bitwig-studio-unwrapped
cp -r ${bitwig-studio}/share $out
'';
}