struct Builder {
rust_release: String,
cargo_release: String,
+ rls_release: String,
input: PathBuf,
output: PathBuf,
gpg_passphrase: String,
date: String,
rust_version: String,
cargo_version: String,
+ rls_version: String,
}
fn main() {
let date = args.next().unwrap();
let rust_release = args.next().unwrap();
let cargo_release = args.next().unwrap();
+ let rls_release = args.next().unwrap();
let s3_address = args.next().unwrap();
let mut passphrase = String::new();
t!(io::stdin().read_to_string(&mut passphrase));
Builder {
rust_release: rust_release,
cargo_release: cargo_release,
+ rls_release: rls_release,
input: input,
output: output,
gpg_passphrase: passphrase,
date: date,
rust_version: String::new(),
cargo_version: String::new(),
+ rls_version: String::new(),
}.build();
}
fn build(&mut self) {
self.rust_version = self.version("rust", "x86_64-unknown-linux-gnu");
self.cargo_version = self.version("cargo", "x86_64-unknown-linux-gnu");
+ self.rls_version = self.version("rls", "x86_64-unknown-linux-gnu");
self.digest_and_sign();
let Manifest { manifest_version, date, pkg } = self.build_manifest();
self.package("rust-std", &mut manifest.pkg, TARGETS);
self.package("rust-docs", &mut manifest.pkg, TARGETS);
self.package("rust-src", &mut manifest.pkg, &["*"]);
-
- if self.rust_release == "nightly" {
- self.package("rls", &mut manifest.pkg, HOSTS);
- self.package("rust-analysis", &mut manifest.pkg, TARGETS);
- }
+ self.package("rls", &mut manifest.pkg, HOSTS);
+ self.package("rust-analysis", &mut manifest.pkg, TARGETS);
let mut pkg = Package {
version: self.cached_version("rust").to_string(),
});
}
+ extensions.push(Component {
+ pkg: "rls".to_string(),
+ target: host.to_string(),
+ });
+ extensions.push(Component {
+ pkg: "rust-analysis".to_string(),
+ target: host.to_string(),
+ });
for target in TARGETS {
if target != host {
extensions.push(Component {
target: target.to_string(),
});
}
- if self.rust_release == "nightly" {
- extensions.push(Component {
- pkg: "rust-analysis".to_string(),
- target: target.to_string(),
- });
- extensions.push(Component {
- pkg: "rls".to_string(),
- target: host.to_string(),
- });
- }
}
extensions.push(Component {
pkg: "rust-src".to_string(),
format!("rust-src-{}.tar.gz", self.rust_release)
} else if component == "cargo" {
format!("cargo-{}-{}.tar.gz", self.cargo_release, target)
+ } else if component == "rls" {
+ format!("rls-{}-{}.tar.gz", self.rls_release, target)
} else {
format!("{}-{}-{}.tar.gz", component, self.rust_release, target)
}
fn cached_version(&self, component: &str) -> &str {
if component == "cargo" {
&self.cargo_version
+ } else if component == "rls" {
+ &self.rls_version
} else {
&self.rust_version
}