Skip to content

Commit 9ccb263

Browse files
committed
check for install xcode on macs
1 parent 0799153 commit 9ccb263

File tree

9 files changed

+38
-2
lines changed

9 files changed

+38
-2
lines changed

lib/components/Start/Checks/SystemChecks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var SystemChecks = function (_a) {
1313
return null;
1414
}
1515
var status = [checks.system.node, checks.system.npm];
16-
return (React.createElement(Card_1.Card, {className: 'cr-check'}, React.createElement(Card_1.CardHeader, {title: 'System Checks', subtitle: 'CodeRoad requires several key dependencies'}), React.createElement(Card_1.CardText, null, React.createElement(DynamicStepper_1.default, {status: status}, React.createElement(StepCheck_1.default, {label: 'Node >= 0.10', completed: checks.system.node}, React.createElement("p", null, "Install a newer version of ", React.createElement("a", {style: { color: colors_1.pink500 }, href: 'https://nodejs.org'}, "NodeJS"))), React.createElement(StepCheck_1.default, {label: 'NPM >= 3', completed: checks.system.npm}, "Update your version of NPM.", React.createElement("br", null), React.createElement("code", null, "> npm update -g npm"), React.createElement("br", null), React.createElement(FlatButton_1.default, {label: 'Update NPM', secondary: true, onTouchTap: action_system_1.updateNpm})))), React.createElement(Card_1.CardActions, null, React.createElement(VerifyButton_1.default, null))));
16+
return (React.createElement(Card_1.Card, {className: 'cr-check'}, React.createElement(Card_1.CardHeader, {title: 'System Checks', subtitle: 'CodeRoad requires several key dependencies'}), React.createElement(Card_1.CardText, null, React.createElement(DynamicStepper_1.default, {status: status}, React.createElement(StepCheck_1.default, {label: 'Node >= 0.10', completed: checks.system.node}, React.createElement("p", null, "Install a newer version of ", React.createElement("a", {style: { color: colors_1.pink500 }, href: 'https://nodejs.org'}, "NodeJS"))), React.createElement(StepCheck_1.default, {label: 'NPM >= 3', completed: checks.system.npm}, "Update your version of NPM.", React.createElement("br", null), React.createElement("code", null, "> npm update -g npm"), React.createElement("br", null), React.createElement(FlatButton_1.default, {label: 'Update NPM', secondary: true, onTouchTap: action_system_1.updateNpm})), React.createElement(StepCheck_1.default, {label: 'Xcode', completed: checks.system.xcode}, React.createElement("p", null, "Install ", React.createElement("a", {style: { color: colors_1.pink500 }, href: 'https://developer.apple.com/xcode/download/'}, "XCode"))))), React.createElement(Card_1.CardActions, null, React.createElement(VerifyButton_1.default, null))));
1717
};
1818
Object.defineProperty(exports, "__esModule", { value: true });
1919
exports.default = SystemChecks;

lib/reducers/checks/check-system.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,15 @@ function nodeMinVersion() {
3838
return minVersion('node', '0.10');
3939
}
4040
exports.nodeMinVersion = nodeMinVersion;
41+
function requiresXCode() {
42+
if (!navigator.platform.match(/Mac/)) {
43+
return true;
44+
}
45+
return command_line_1.default('xcode-select', '-v').then(function (res) {
46+
if (!!res.match(/xcode-select version [0-9]+/)) {
47+
return true;
48+
}
49+
return false;
50+
});
51+
}
52+
exports.requiresXCode = requiresXCode;

lib/reducers/checks/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ var _checks = {
66
system: {
77
node: false,
88
npm: false,
9+
xcode: false,
910
},
1011
setup: {
1112
dir: false,

lib/reducers/checks/verify.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function setupVerify() {
2121
system: {
2222
node: !!check_system_1.nodeMinVersion(),
2323
npm: !!check_system_1.npmMinVersion(),
24+
xcode: !!check_system_1.requiresXCode(),
2425
},
2526
setup: {
2627
dir: dir,

src/components/Start/Checks/SystemChecks.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ const SystemChecks: React.StatelessComponent<{
4242
onTouchTap={updateNpm}
4343
/>
4444
</StepCheck>
45+
46+
<StepCheck
47+
label='Xcode'
48+
completed={checks.system.xcode}
49+
>
50+
<p>Install <a style={{color: pink500}} href='https://developer.apple.com/xcode/download/'>XCode</a></p>
51+
</StepCheck>
4552
</DynamicStepper>
4653
</CardText>
4754
<CardActions>

src/reducers/checks/check-system.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,15 @@ export function npmMinVersion(): Promise<boolean> {
4040
export function nodeMinVersion(): Promise<boolean> {
4141
return minVersion('node', '0.10');
4242
}
43+
44+
export function requiresXCode(): Promise<boolean> | boolean {
45+
if (!navigator.platform.match(/Mac/)) {
46+
return true;
47+
}
48+
return commandLine('xcode-select', '-v').then((res: string) => {
49+
if (!!res.match(/xcode-select version [0-9]+/)) {
50+
return true;
51+
}
52+
return false;
53+
});
54+
}

src/reducers/checks/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const _checks = {
66
system: {
77
node: false,
88
npm: false,
9+
xcode: false,
910
},
1011
setup: {
1112
dir: false,

src/reducers/checks/verify.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {npmMinVersion, nodeMinVersion} from './check-system';
1+
import {npmMinVersion, nodeMinVersion, requiresXCode} from './check-system';
22
import store from '../../store';
33
import {searchForTutorials} from '../tutorial-list/check';
44

@@ -25,6 +25,7 @@ export default function setupVerify(): CR.Checks {
2525
system: {
2626
node: !!nodeMinVersion(),
2727
npm: !!npmMinVersion(),
28+
xcode: !!requiresXCode(),
2829
},
2930
setup: {
3031
dir,

src/typings/cr/cr.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ declare namespace CR {
6969
passed?: boolean;
7070
node: boolean;
7171
npm: boolean;
72+
xcode: boolean;
7273
};
7374
setup: {
7475
passed?: boolean;

0 commit comments

Comments
 (0)