Beta testing rustup.rs

@sfackler Great catch. Thanks. Issue.

Issue.

Hm. @Diggsey had multirust-rs installing path modifications to ~/.profile and I changed it because ~/.profile is only read for login shells, and that seemed wrong since most shells are not login shells. I'm happy to change this to do the right thing, but I'd like to understand better why it's ok not to set the PATH for non-login shells. Issue.

There's more work to come next quarter on installing the native toolchain components. We'll probably start with the android NDK.

Yay!

I've heard this feedback from others too. I intend to make rustup just print help, and move the update-everything feature to rustup update.

Good idea. Issue.

I think this makes sense too. Here's an issue. My only reservation is diverging from the behavior of rbenv, which just prints a 'version' and a reason it was selected, and is easily machine-parable.

@mb4 The plan here for the future is that when you rustup target add rustup will give you the option to automatically acquire the right software for your combination of host platform and target platform. So when you install e.g. arm-linux-androideabi, rustup will download the NDK, stash it somewhere, and configure the associated Rust toolchain to use it correctly.

I haven't thought of this question before, but it makes sense to focus specifically on linker customization, not just generally configuring the native toolchain. A part of this hypothetical future ndk-managament could be the ability to specify a custom linker.

OK. Makes sense. The only reasons I haven't added yet are because redundancy, and because install is potentially a better word than add, and because does an add do an upgrade implicitly, or is it just add, and we also need rustup toolchain update?

Then should the same be true of override? override uses subcommands so should it instead be rustup override show? Then what about default again? Should it be default show?

This was a tough one for me. It does logically belong under rustup override show, and in multirust this was even called multirust show-override. In rbenv though it is called rbenv version, which is pretty sweet. For reasons I didn't want to use the word 'version' in rustup so I picked 'show'.

I also considered calling this 'status' and as you suggest putting more info in it, but rbenv does not do that. Furthermore, the word 'show' can be more easily reused for other purposes: toolchain show, override show.

Maybe instead I should put the existing feature in rustup override show, and save rustup status for more broader status (like rustup update vs. rustup toolchain update or rustup update nightly.

Yep! But then you probably want to call 'remove' 'unset' ('set' and 'unset' are what rbenv use).

Yes. Issue.

Totally. This is a holdover from multirust.sh. Just needs some attention. Issue.

Yes. It's complicated though pulling together all the info. Issue.

Thanks for the careful review.