2020-06-05 09:23:22 +00:00
|
|
|
#
|
|
|
|
# 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 {
|
2022-07-17 12:37:46 +00:00
|
|
|
name = "status-mobile-shell"; # for identifying all shells
|
2020-06-05 09:23:22 +00:00
|
|
|
|
2023-06-22 13:06:19 +00:00
|
|
|
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
|
|
|
|
# lint specific utilities
|
|
|
|
clj-kondo zprint
|
|
|
|
# other nice to have stuff
|
|
|
|
yarn nodejs python310
|
|
|
|
] # and some special cases
|
|
|
|
++ lib.optionals stdenv.isDarwin ([ cocoapods clang tcl ] ++ appleSDKFrameworks)
|
|
|
|
++ lib.optionals (!stdenv.isDarwin) [ gcc8 ]
|
|
|
|
);
|
2020-06-05 09:23:22 +00:00
|
|
|
|
|
|
|
# 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 = ''
|
2022-07-17 12:37:46 +00:00
|
|
|
export STATUS_MOBILE_HOME=$(git rev-parse --show-toplevel)
|
|
|
|
export PATH="$STATUS_MOBILE_HOME/node_modules/.bin:$PATH"
|
2020-06-05 09:23:22 +00:00
|
|
|
'';
|
|
|
|
}
|