< 返回版块

github.com/shanliu/lsys 发表于 2023-01-10 14:20

如何在 执行 cargo install 的时候进行一些文件拷贝? 比如拷贝一些配置文件

评论区

写评论
作者 github.com/shanliu/lsys 2023-01-15 14:26

我提问就是:执行 cargo install 的时候进行一些文件拷贝 不是:执行 cargo build 的时候进行一些文件拷贝

。。。。。。。。

👇
苦瓜小仔:

执行 cargo install 的时候进行一些文件拷贝

需要编译后拷贝文件

???

你自己就没描述清楚。

cargo 不支持,也不打算支持 post-build,行了吧。

https://stackoverflow.com/questions/66284221/can-i-perform-a-task-after-compilation-is-complete

苦瓜小仔 2023-01-13 21:15

执行 cargo install 的时候进行一些文件拷贝

需要编译后拷贝文件

???

你自己就没描述清楚。

cargo 不支持,也不打算支持 post-build,行了吧。

https://stackoverflow.com/questions/66284221/can-i-perform-a-task-after-compilation-is-complete

作者 github.com/shanliu/lsys 2023-01-13 18:34

需要编译后拷贝文件. 安装的时候怎么触发?

--
👇
苦瓜小仔: build.rs 还不够吗?

$ cat build.rs
fn main() {
    std::process::Command::new("touch")
        .arg("/tmp/tmp_file_from_rust_build_script")
        .output()
        .unwrap();
    std::fs::File::create("/tmp/tmp_file_from_rust_build_script2").unwrap();
}

安装的时候就可以创建两个临时文件(一个通过系统命令,一个通过 Rust 的跨平台函数)。

苦瓜小仔 2023-01-12 22:42

build.rs 还不够吗?

$ cat build.rs
fn main() {
    std::process::Command::new("touch")
        .arg("/tmp/tmp_file_from_rust_build_script")
        .output()
        .unwrap();
    std::fs::File::create("/tmp/tmp_file_from_rust_build_script2").unwrap();
}

安装的时候就可以创建两个临时文件(一个通过系统命令,一个通过 Rust 的跨平台函数)。

作者 github.com/shanliu/lsys 2023-01-12 20:46

还要装个工具 越搞越复杂

--
👇
linqingyao: 那你可不可以用第三方工具来执行 cargo install,并执行你需要的其他命令呢?比如:可以用 just 。以下是一个示例:

# .justfile

install:
    mv file1 file2
    cargo install [crate]
作者 github.com/shanliu/lsys 2023-01-12 20:45

makefile 跨平台太糟糕 不跨平台我直接写shell完了 累赘

--
👇
shuimuliang: u may need a makefile

shuimuliang 2023-01-10 23:59

u may need a makefile

linqingyao 2023-01-10 18:11

那你可不可以用第三方工具来执行 cargo install,并执行你需要的其他命令呢?比如:可以用 just 。以下是一个示例:

# .justfile

install:
    mv file1 file2
    cargo install [crate]
1 共 8 条评论, 1 页