{ rizin-unwrapped, rizinPlugins, makeWrapper, symlinkJoin }: let makeRizinPackageWithPlugins = plugins: let plugins_path = symlinkJoin { name = "rizin-plugins"; paths = plugins; }; in symlinkJoin { name = "rizin"; paths = [ rizin-unwrapped ]; buildInputs = [makeWrapper]; postBuild = '' wrapProgramArgs=() for plugin in $(find -L lib/rizin/plugins -type f -executable); do wrapProgramArgs+=("--add-flags") wrapProgramArgs+=("-l") wrapProgramArgs+=("--add-flags") wrapProgramArgs+=("$plugin") done wrapProgram $out/bin/rizin ''${wrapProgramArgs[*]} ''; } // { withPlugins = p: makeRizinPackageWithPlugins (plugins ++ (p rizinPlugins)); }; in makeRizinPackageWithPlugins []