Check for npm, xcode, & android env in makefile (#30)
* Avoid clobbering config.secret.json if already exists * Clear npm cache when running make clean * Fail make if npm is not installed * Wrap rn run commands so local rn cli is used instead of global * Separate run commands for ios & android * Fail make run-ios if xcode isn't installed * Check android env in make run * Fix make check for config.secret.json
This commit is contained in:
parent
0f92c48843
commit
99140c6ece
2 changed files with 40 additions and 7 deletions
45
Makefile
45
Makefile
|
|
@ -1,6 +1,11 @@
|
|||
.PHONY: run check-style test clean
|
||||
.PHONY: run run-ios run-android check-style test clean
|
||||
|
||||
.npminstall: package.json
|
||||
@if ! [ $(shell command -v npm) ]; then \
|
||||
echo "npm is not installed"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
@echo Getting dependencies using npm
|
||||
|
||||
npm install
|
||||
|
|
@ -8,13 +13,38 @@
|
|||
touch $@
|
||||
|
||||
config/config.secret.json:
|
||||
@echo Generating default config/config.secret.json
|
||||
@echo '{}' > config/config.secret.json
|
||||
@if ! [ $(shell test -f config/config.secret.json) ]; then \
|
||||
echo "Generating default config/config.secret.json"; \
|
||||
echo '{}' > "config/config.secret.json"; \
|
||||
fi
|
||||
|
||||
run: .npminstall config/config.secret.json
|
||||
@echo Running Mobile iOS Apps for development
|
||||
run: run-ios
|
||||
|
||||
react-native run-ios
|
||||
run-ios: .npminstall config/config.secret.json
|
||||
@if ! [ $(shell command -v xcodebuild) ]; then \
|
||||
echo "xcode is not installed"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo Running iOS app in development
|
||||
|
||||
npm run run-ios
|
||||
|
||||
run-android: .npminstall config/config.secret.json
|
||||
@if ! [ $(ANDROID_HOME) ]; then \
|
||||
echo "ANDROID_HOME is not set"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if ! [ $(shell command -v adb) ]; then \
|
||||
echo "adb is not installed"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if ! [ $(shell adb get-state) == "device" ]; then \
|
||||
echo "no android device or emulator is running"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo Running Android app in development
|
||||
|
||||
npm run run-android
|
||||
|
||||
test: .npminstall config/config.secret.json
|
||||
npm test
|
||||
|
|
@ -27,5 +57,6 @@ check-style: .npminstall
|
|||
clean:
|
||||
@echo Cleaning app
|
||||
|
||||
npm cache clean
|
||||
rm -rf node_modules
|
||||
rm -f .npminstall
|
||||
rm -f .npminstall
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
},
|
||||
"scripts": {
|
||||
"check": "node_modules/.bin/eslint --ext \".js\" --ignore-pattern node_modules --quiet .",
|
||||
"run-ios": "node node_modules/react-native/local-cli/cli.js run-ios",
|
||||
"run-android": "node node_modules/react-native/local-cli/cli.js run-android",
|
||||
"start": "node node_modules/react-native/local-cli/cli.js start",
|
||||
"test": "mocha --compilers js:babel-register --require babel-polyfill",
|
||||
"postinstall": "remotedev-debugger --hostname localhost --port 5678 --injectserver"
|
||||
|
|
|
|||
Loading…
Reference in a new issue