diff options
Diffstat (limited to 'bin/setup')
-rwxr-xr-x | bin/setup | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/bin/setup b/bin/setup new file mode 100755 index 0000000..5711b92 --- /dev/null +++ b/bin/setup @@ -0,0 +1,112 @@ +#!/usr/bin/env bash +# +# Setup Script +# +# Runs all the needed commands to set up a developer's system to run this app. +# Customize this as your app grows. + +# Check for macOS +if [[ ! "$OSTYPE" =~ ^darwin ]]; then + echo "This script only works on macOS" + exit 1 +fi + +# Check for Homebrew +command -v brew >/dev/null 2>&1 || { + echo "This setup script requires Homebrew, but it was not found on your system." + echo "Install it using the instructions at https://brew.sh/" + exit 1 +} + +# Ensure CocoaPods is installed +command -v pod >/dev/null 2>&1 || { + echo "This app requires CocoaPods to run, but it was not found on your system." + echo "Install it using the instructions at https://guides.cocoapods.org/using/getting-started.html#installation" + exit 1 +} + +# Ensure Node.js is installed +command -v npm >/dev/null 2>&1 || { + echo "This app requires Node.js to run, but it was not found on your system." + echo "Installing node with brew..." + brew install node +} + +# Ensure Watchman is installed +command -v watchman >/dev/null 2>&1 || { + echo "This app requires Watchman to watch file changes, but it was not found on your system." + echo "Installing watchman with brew..." + brew install watchman +} + +# Ensure Yarn is installed +command -v yarn >/dev/null 2>&1 || { + echo "This app requires Yarn package manager, but it was not found on your system." + echo "Installing yarn with brew..." + brew install yarn +} + +# Ensure react-native-cli is installed +command -v react-native >/dev/null 2>&1 || { + echo "This app requires react-native-cli, but it was not found on your system." + echo "Installing react-native-cli globally with yarn..." + yarn global add react-native-cli +} + +# IF NEEDED: Ensure appleSimUtils is installed +# command -v applesimutils >/dev/null 2>&1 || { +# echo "This app requires appleSimUtils to run end to end tests, but it was not found on your system." +# echo "Installing applesimutils with brew..." +# brew tap wix/brew +# brew install applesimutils +# } + +# IF NEEDED: Ensure detox-cli is installed +# command -v detox >/dev/null 2>&1 || { +# echo "This app requires detox-cli to run end to end tests, but it was not found on your system." +# echo "Installing detox globally with npm..." +# npm install -g detox-cli +# } + +# IF NEEDED: Ensure phraseapp is installed +# command -v phraseapp >/dev/null 2>&1 || { +# echo "This app requires phraseapp to run localizations, but it was not found on your system." +# echo "Installing phraseapp with brew..." +# brew tap phrase/brewed +# brew install phraseapp +# } + +echo "----------------------------------------------------------" +echo "Installing NPM Packages with Yarn" +echo "----------------------------------------------------------" + +yarn || { echo "NPM Packages could not be installed!"; exit 1; }; + +echo "----------------------------------------------------------" +echo "Installing CocoaPods" +echo "----------------------------------------------------------" + +cd ios/ && { + pod install || { echo "CocoaPods could not be installed!"; exit 1; }; + cd - +} + +# IF NEEDED +# echo "----------------------------------------------------------" +# echo "Running localizations" +# echo "----------------------------------------------------------" + +# bin/localize + +echo "----------------------------------------------------------" +echo "Running tests to verify setup is complete" +echo "----------------------------------------------------------" + +yarn test || { exit 1; } + +echo "----------------------------------------------------------" +echo "Setup complete!" +echo "----------------------------------------------------------" + +echo "To run the app on iOS:" +echo "react-native run-ios"
\ No newline at end of file |