@@ -255,6 +255,7 @@ BOOL_OPTIONS=""
255
255
VAL_OPTIONS=" "
256
256
257
257
flag uninstall " only uninstall from the installation prefix"
258
+ opt cargo 1 " install cargo with rust"
258
259
259
260
if [ $HELP -eq 1 ]
260
261
then
@@ -384,6 +385,24 @@ case $HOST_TRIPLE in
384
385
385
386
esac
386
387
388
+ # Is this a triple we have cargo nightlies for?
389
+ if [ -z " ${CFG_DISABLE_CARGO} " ]; then
390
+ case $HOST_TRIPLE in
391
+ x86_64-unknown-linux-gnu)
392
+ CARGO_PLATFORM=linux
393
+ ;;
394
+
395
+ x86_64-apple-darwin)
396
+ CARGO_PLATFORM=mac
397
+ ;;
398
+
399
+ * )
400
+ warn " rustup.sh can't install cargo for $HOST_TRIPLE "
401
+ CFG_DISABLE_CARGO=1
402
+
403
+ esac
404
+ fi
405
+
387
406
msg " host triple: ${HOST_TRIPLE} "
388
407
389
408
PACKAGE_NAME=rust-nightly
@@ -395,20 +414,39 @@ LOCAL_TARBALL="${TMP_DIR}/${TARBALL_NAME}"
395
414
LOCAL_INSTALL_DIR=" ${TMP_DIR} /${PACKAGE_NAME_AND_TRIPLE} "
396
415
LOCAL_INSTALL_SCRIPT=" ${LOCAL_INSTALL_DIR} /install.sh"
397
416
417
+ CARGO_PACKAGE_NAME=cargo-nightly
418
+ CARGO_PACKAGE_NAME_AND_TRIPLE=" ${CARGO_PACKAGE_NAME} -${CARGO_PLATFORM} "
419
+ CARGO_TARBALL_NAME=" ${CARGO_PACKAGE_NAME_AND_TRIPLE} .tar.gz"
420
+ CARGO_REMOTE_TARBALL=" http://static.rust-lang.org/cargo-dist/${CARGO_TARBALL_NAME} "
421
+ CARGO_LOCAL_TARBALL=" ${TMP_DIR} /${CARGO_TARBALL_NAME} "
422
+ CARGO_LOCAL_INSTALL_DIR=" ${TMP_DIR} /${CARGO_PACKAGE_NAME} "
423
+ CARGO_LOCAL_INSTALL_SCRIPT=" ${CARGO_LOCAL_INSTALL_DIR} /install.sh"
424
+
398
425
rm -Rf " ${TMP_DIR} "
399
426
need_ok " failed to remove temporary installation directory"
400
427
401
428
mkdir -p " ${TMP_DIR} "
402
429
need_ok " failed to create create temporary installation directory"
403
430
404
- msg " downloading installer"
431
+ msg " downloading rust installer"
405
432
" ${CFG_CURL} " " ${REMOTE_TARBALL} " > " ${LOCAL_TARBALL} "
406
433
if [ $? -ne 0 ]
407
434
then
408
435
rm -Rf " ${TMP_DIR} "
409
436
err " failed to download installer"
410
437
fi
411
438
439
+ if [ -z " ${CFG_DISABLE_CARGO} " ]; then
440
+ msg " downloading cargo installer"
441
+ " ${CFG_CURL} " " ${CARGO_REMOTE_TARBALL} " > " ${CARGO_LOCAL_TARBALL} "
442
+ if [ $? -ne 0 ]
443
+ then
444
+ rm -Rf " ${TMP_DIR} "
445
+ err " failed to download cargo installer"
446
+ fi
447
+ fi
448
+
449
+
412
450
(cd " ${TMP_DIR} " && tar xzf " ${TARBALL_NAME} " )
413
451
if [ $? -ne 0 ]
414
452
then
@@ -429,5 +467,21 @@ then
429
467
err " failed to install Rust"
430
468
fi
431
469
470
+ if [ -z " ${CFG_DISABLE_CARGO} " ]; then
471
+ (cd " ${TMP_DIR} " && tar xzf " ${CARGO_TARBALL_NAME} " )
472
+ if [ $? -ne 0 ]
473
+ then
474
+ rm -Rf " ${TMP_DIR} "
475
+ err " failed to unpack cargo installer"
476
+ fi
477
+
478
+ sh " ${CARGO_LOCAL_INSTALL_SCRIPT} " " ${MAYBE_UNINSTALL} "
479
+ if [ $? -ne 0 ]
480
+ then
481
+ rm -Rf " ${TMP_DIR} "
482
+ err " failed to install Cargo"
483
+ fi
484
+ fi
485
+
432
486
rm -Rf " ${TMP_DIR} "
433
487
need_ok " couldn't rm temporary installation directory"
0 commit comments