let unstable_overlay = self: super: { unstable = import (builtins.fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz) {}; _1password = self.unstable._1password; }; moz_overlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz); rust_replace = self: super: { rust = let rust_1_28 = (super.rustChannelOf { channel = "1.28.0"; }).rust; rust = rust_1_28; #super.rustChannels.stable.rust; in { rustc = rust; cargo = rust; }; inherit (self.rust) rustc cargo; }; orig = import {}; nixpkgs = import { overlays = [ moz_overlay rust_replace unstable_overlay ]; }; in with nixpkgs; stdenv.mkDerivation { name = "moz_overlay_shell"; buildInputs = [ rustc cargo carnix _1password ] ++ (stdenv.lib.optionals stdenv.isDarwin [ darwin.cf-private darwin.apple_sdk.frameworks.CoreServices ]); shellHook = '' function op { if [ "$1" == "signin" ]; then eval $(command op "$@") else command op "$@" fi } ''; }