mh-qa-cli
Version:
A command to get MissionHub QA running
71 lines (70 loc) โข 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("colors");
const Listr = require("listr");
const util = require("util");
const constants_1 = require("./constants");
const exec = util.promisify(require('child_process').exec);
const dependencies = [
{
title: '๐บ Installing brew',
check: 'command -v brew',
install: '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"',
},
{
title: '๐ต Installing git',
check: 'command -v git',
install: 'brew install git',
},
{
title: '๐ Installing RubyGems bundler',
check: 'command -v bundle',
install: 'gem install bundler',
},
{
title: '๐งถ Installing yarn',
check: 'command -v yarn',
install: 'brew install yarn',
},
{
title: '๐ Creating directories',
check: 'cd ~/code',
install: 'mkdir ~/code',
},
{
title: '๐ Cloning repo',
check: `cd ${constants_1.REPO_DIRECTORY} && git rev-parse --is-inside-work-tree`,
install: 'cd ~/code && git clone https://github.com/CruGlobal/missionhub-react-native.git',
},
{
title: '๐๏ธ Initializing .env',
install: `cp ${constants_1.REPO_DIRECTORY}/.env.staging ${constants_1.REPO_DIRECTORY}/.env`,
},
{
title: '๐ค Installing android studio',
check: 'ls /Applications/Android\\ Studio.app/Contents',
install: 'brew cask install android-studio',
},
{
title: '๐ฑ Creating Android Emulator',
check: '[ ! -f ~/Library/Android/sdk/tools/bin/avdmanager ]',
install: `JAVA_HOME=/Applications/Android\\ Studio.app/Contents/jre/jdk/Contents/Home
~/Library/Android/sdk/tools/bin/sdkmanager "system-images;android-29;google_apis;x86" &&
~/Library/Android/sdk/tools/bin/avdmanager create avd --name missionhub_qa_cli --package "system-images;android-29;google_apis;x86" --device pixel_xl --force &&
(grep -qF -- "hw.keyboard=yes" ~/.android/avd/missionhub_qa_cli.avd/config.ini || echo "hw.keyboard=yes" >> ~/.android/avd/missionhub_qa_cli.avd/config.ini)`,
},
];
const setupTasks = new Listr(dependencies.map(({ title, check, install }) => ({
title,
skip: async () => {
try {
await exec(check);
return true;
}
catch {
return false;
}
},
task: async () => await exec(install),
})));
exports.setup = () => setupTasks.run();