Скрипт сборки Rust для копирования файла в целевой каталог - PullRequest
1 голос
/ 06 августа 2020

Для моего проекта я хотел бы скопировать файл config.ron, который находится в root моего проекта, в целевой каталог, когда проект будет построен. Я знаю, что вы можете использовать include_str! чтобы добавить содержимое файла в программу во время компиляции, но я бы хотел, чтобы файл оставался в root целевой папки, чтобы его можно было редактировать без необходимости перекомпилировать программу.

Я сейчас пробую сценарий сборки для выполнения sh этого, но мне не повезло.

use std::process::Command;
use std::env;

fn main() {
    let profile = std::env::var("PROFILE").unwrap();
    match profile.as_str() {
        "debug" => {
            Command::new("cmd")
                .args(&["copy", "/y"])
                .arg(&format!(r#"{}\config.ron"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .arg(&format!(r#"{}\target\debug"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .status()
                .expect("Copy failed to execute.");
            ()
        },
        "release" => {
            Command::new("cmd")
                .args(&["copy", "/y"])
                .arg(&format!(r#"{}\config.ron"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .arg(&format!(r#"{}\target\release"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .status()
                .expect("Copy failed to execute.");
            ()
        },
        _ => (),
    }
}

Каким будет правильный способ скопировать этот файл в целевой каталог с помощью сценарий сборки?

1 Ответ

2 голосов
/ 06 августа 2020

Если вы действительно хотите сделать это в скрипте сборки, я бы использовал go со следующими ингредиентами:

...