summaryrefslogtreecommitdiff
path: root/bin/setup
blob: 5711b9282c2f3803338b55b62a85f8097cd5c70f (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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"