shell.nix 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Nix shell environment for mmgen-wallet
  2. {
  3. repo ? "mmgen-wallet",
  4. add_pkgs_path ? null
  5. }:
  6. let
  7. pkgs = import <nixpkgs> {};
  8. in
  9. pkgs.mkShellNoCC {
  10. packages = builtins.attrValues (import ./merged-packages.nix { add_pkgs_path = add_pkgs_path; });
  11. shellHook = ''
  12. do_bin_override() {
  13. (
  14. rm -rf .bin-override
  15. mkdir .bin-override
  16. cd .bin-override
  17. if [ -x /bin/sudo ]; then
  18. ln -s /bin/sudo
  19. ln -s /bin/mount
  20. ln -s /bin/umount
  21. elif [ -x /run/wrappers/bin/sudo ]; then
  22. ln -s /run/wrappers/bin/sudo
  23. ln -s /run/wrappers/bin/mount
  24. ln -s /run/wrappers/bin/umount
  25. fi
  26. )
  27. }
  28. read _ _ name <<<$(grep ^name setup.cfg)
  29. [ "$name" == "${repo}" ] || {
  30. echo "Error: this script must be executed in the ${repo} repository root"
  31. exit 1
  32. }
  33. pwd=$(pwd)
  34. export PYTHONPATH=$pwd
  35. export PATH=$pwd/cmds:$pwd/.bin-override:$HOME/.local/bin:$PATH
  36. [ "$UID" == 0 ] || do_bin_override
  37. '';
  38. }