Skip to content
Snippets Groups Projects
Commit 38b7d7e8 authored by Tom Prince's avatar Tom Prince
Browse files

Make `tools/default.nix` more easily extendable.

parent 156c7f3e
No related branches found
No related tags found
2 merge requests!180merge develop into production,!165Add a script to update nixos version, and run it.
......@@ -13,22 +13,37 @@ let
echo ${lib.escapeShellArg ./pylib} > $out/${lib.escapeShellArg python.sitePackages}/tools.pth
'';
};
python-commands = [
./update-nixpkgs
];
in
# This derivation creates a package that wraps our tools to setup an environment
# with there dependencies available.
# This derivation creates a package that wraps our tools to setup an environment
# with there dependencies available.
pkgs.runCommand "ps_tools" {
nativeBuildInputs = [ makeWrapper ];
shellHook = ''
# Only display the help if we are running an interactive shell.
if [[ $- == *i* ]]; then
cat <<MOTD
Tools (pass --help for details):
- update-nixpkgs
${lib.concatStringsSep "\n" (map (path:
"- ${baseNameOf path}"
) python-commands)}
MOTD
fi
'';
} ''
mkdir -p $out/bin
# makeWrapper <executable> <wrapperfile> <args>
# See https://nixos.org/manual/nixpkgs/stable/#fun-makeWrapper
makeWrapper ${python-env}/bin/python $out/bin/update-nixpkgs --add-flags ${toString ./update-nixpkgs}
''
} ''
mkdir -p $out/bin
${lib.concatStringsSep "\n" (map (path:
let
baseName = baseNameOf path;
# We use toString so that we wrap the in-tree scripts, rather than copying
# them to the nix-store. This means that we don't need to run nix-shell again
# to pick up changes.
sourcePath = toString path;
in
# makeWrapper <executable> <wrapperfile> <args>
# See https://nixos.org/manual/nixpkgs/stable/#fun-makeWrapper
"makeWrapper ${python-env}/bin/python $out/bin/${baseName} --add-flags ${sourcePath}"
) python-commands)}
''
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment