{ lib, python3, runCommandLocal, makeWrapper, }: let write_python = { name, dependencies_system ? [], dependencies_python ? _: [], keepPath ? false, }: let src = ./${name}.py; dependencies = [(python3.withPackages dependencies_python)] ++ dependencies_system; path_setting = if keepPath then "--prefix PATH :" else "--set PATH"; in runCommandLocal name { nativeBuildInputs = [makeWrapper] ++ dependencies; } '' install -m755 ${src} -D "$out/bin/${name}" patchShebangs "$out/bin/${name}" wrapProgram "$out/bin/${name}" ${path_setting} ${lib.makeBinPath dependencies}; ''; in write_python { name = "nato"; dependencies_python = ps: []; }