|
| 1 | +[](https://travis-ci.org/rust-lang/rust-installer) |
| 2 | + |
| 3 | +A generator for the install.sh script commonly used to install Rust in |
| 4 | +Unix environments. It is used By Rust, Cargo, and is intended to be |
| 5 | +used by a future combined installer of Rust + Cargo. |
| 6 | + |
| 7 | +# Usage |
| 8 | + |
| 9 | +``` |
| 10 | +./gen-installer.sh --product-name=Rust \ |
| 11 | + --rel-manifest-dir=rustlib \ |
| 12 | + --success-message=Rust-is-ready-to-roll. \ |
| 13 | + --image-dir=./install-image \ |
| 14 | + --work-dir=./temp \ |
| 15 | + --output-dir=./dist \ |
| 16 | + --non-installed-overlay=./overlay \ |
| 17 | + --package-name=rustc-nightly-i686-apple-darwin \ |
| 18 | + --component-name=rustc \ |
| 19 | + --legacy-manifest-dirs=rustlib \ |
| 20 | + --bulk-dirs=share/doc |
| 21 | +``` |
| 22 | + |
| 23 | +Or, to just generate the script. |
| 24 | + |
| 25 | +``` |
| 26 | +./gen-install-script.sh --product-name=Rust \ |
| 27 | + --rel-manifest-dir=rustlib \ |
| 28 | + --success-message=Rust-is-ready-to-roll. \ |
| 29 | + --output-script=install.sh \ |
| 30 | + --legacy-manifest-dirs=rustlib |
| 31 | +``` |
| 32 | + |
| 33 | +*Note: the dashes in `success-message` are converted to spaces. The |
| 34 | +script's argument handling is broken with spaces.* |
| 35 | + |
| 36 | +To combine installers. |
| 37 | + |
| 38 | +``` |
| 39 | +./combine-installers.sh --product-name=Rust \ |
| 40 | + --rel-manifest-dir=rustlib \ |
| 41 | + --success-message=Rust-is-ready-to-roll. \ |
| 42 | + --work-dir=./temp \ |
| 43 | + --output-dir=./dist \ |
| 44 | + --non-installed-overlay=./overlay \ |
| 45 | + --package-name=rustc-nightly-i686-apple-darwin \ |
| 46 | + --legacy-manifest-dirs=rustlib \ |
| 47 | + --input-tarballs=./rustc.tar.gz,cargo.tar.gz |
| 48 | +``` |
| 49 | + |
| 50 | +# Future work |
| 51 | + |
| 52 | +* Make install.sh not have to be customized, pull it's data from a |
| 53 | + config file. |
| 54 | +* Be more resiliant to installation failures, particularly if the disk |
| 55 | + is full. |
| 56 | +* Pre-install and post-uninstall scripts. |
| 57 | +* Allow components to depend on or contradict other components. |
| 58 | +* Sanity check that expected destination dirs (bin, lib, share exist)? |
| 59 | +* Add --docdir flag. Is there a standard name for this? |
| 60 | +* Remove empty directories on uninstall. |
| 61 | +* Detect mismatches in --prefix, --mandir, etc. in follow-on |
| 62 | + installs/uninstalls. |
| 63 | +* Fix argument handling for spaces. |
| 64 | +* Add --bindir. |
| 65 | + |
| 66 | +# License |
| 67 | + |
| 68 | +This software is distributed under the terms of both the MIT license |
| 69 | +and/or the Apache License (Version 2.0), at your option. |
| 70 | + |
| 71 | +See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT) for details. |
0 commit comments