]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | [![Build Status](https://travis-ci.org/rust-lang/rust-installer.svg?branch=master)](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 \ | |
1a4d82fc JJ |
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 \ | |
85aaf69f | 16 | --non-installed-overlay=./overlay \ |
1a4d82fc JJ |
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 \ | |
1a4d82fc JJ |
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 \ | |
1a4d82fc JJ |
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 | |
85aaf69f SL |
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. | |
c1a9b12d SL |
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. |