# # Defines the default shell that is used when target is not specified. # It is also merged with all the other shells for a complete set of tools. # { config ? {} , pkgs ? import ./pkgs.nix { inherit config; } }: let inherit (pkgs) mkShell; in mkShell { name = "status-mobile-shell"; # for identifying all shells buildInputs = let appleSDKFrameworks = (with pkgs.darwin.apple_sdk.frameworks; [ IOKit CoreServices ]); in with pkgs; lib.unique ([ # core utilities that should always be present in a shell bash curl wget file unzip flock procps git gnumake jq ncurses gnugrep parallel lsof # used in start-react-native.sh # build specific utilities clojure maven watchman # other nice to have stuff yarn nodejs python310 maestro ] # and some special cases ++ lib.optionals stdenv.isDarwin ([ cocoapods clang tcl idb-companion ] ++ appleSDKFrameworks) ++ lib.optionals (!stdenv.isDarwin) [ gcc8 ] ); # avoid terminal issues TERM="xterm"; # default locale LANG="en_US.UTF-8"; LANGUAGE="en_US.UTF-8"; # just a nicety for easy access to node scripts shellHook = '' export STATUS_MOBILE_HOME=$(git rev-parse --show-toplevel) export PATH="$STATUS_MOBILE_HOME/node_modules/.bin:$PATH" ''; }