in xtask/src/main.rs [49:126]
fn release() -> Result<(), DynError> {
let cargo = env::var("CARGO").unwrap_or_else(|_| "cargo".to_string());
let status = Command::new(&cargo)
.current_dir(project_root())
.args(["release", "--workspace", "minor", "-x", "--no-publish"])
.status()?;
if !status.success() {
Err("cargo release failed")?;
}
// For packaged build: rename libcubeb Cargo.toml files to Cargo.toml.in.
visit_dirs(Path::new("cubeb-sys/libcubeb"), &|entry| {
let path = entry.path();
if path
.file_name()
.unwrap()
.to_str()
.unwrap()
.ends_with("Cargo.toml")
{
let new_path = path.with_file_name("Cargo.toml.in");
fs::rename(&path, &new_path).unwrap();
}
})
.unwrap();
let status = Command::new(&cargo)
.current_dir(project_root())
.args(["publish", "--package", "cubeb-sys", "--allow-dirty"])
.status()?;
if !status.success() {
Err("cargo publish failed")?;
}
// Rename libcubeb Cargo.toml.in files back to Cargo.toml.
visit_dirs(Path::new("cubeb-sys/libcubeb"), &|entry| {
let path = entry.path();
if path
.file_name()
.unwrap()
.to_str()
.unwrap()
.ends_with("Cargo.toml.in")
{
let new_path = path.with_file_name("Cargo.toml");
fs::rename(&path, &new_path).unwrap();
}
})
.unwrap();
let status = Command::new(&cargo)
.current_dir(project_root())
.args(["publish", "--package", "cubeb-core"])
.status()?;
if !status.success() {
Err("cargo publish failed")?;
}
let status = Command::new(&cargo)
.current_dir(project_root())
.args(["publish", "--package", "cubeb-backend"])
.status()?;
if !status.success() {
Err("cargo publish failed")?;
}
let status = Command::new(&cargo)
.current_dir(project_root())
.args(["publish", "--package", "cubeb"])
.status()?;
if !status.success() {
Err("cargo publish failed")?;
}
Ok(())
}