8 个版本
0.3.3 | 2022 年 2 月 4 日 |
---|---|
0.3.2 | 2021 年 8 月 10 日 |
0.2.0 | 2021 年 4 月 19 日 |
0.1.8 | 2021 年 4 月 19 日 |
0.1.0 | 2021 年 3 月 31 日 |
#196 in 仿真器
每月 29 次下载
44KB
1.5K SLoC
vboxhelper
vboxhelper 在 VirtualBox 命令行工具之上提供了一个强类型 API。
lib.rs
:
这个包可能不是你所期望的——事实上,它可能正是你所害怕的。它不会集成 VirtualBox 的 COM 接口,而是会调用命令行工具并解析它们的输出。
也许并不奇怪,这个包最初是一个 bash 脚本,并逐渐演变成了今天的样子。
示例
终止名为 myvm 的虚拟机并将其恢复到名为 mysnap 的快照。
use std::time::Duration;
use vboxhelper::*;
let vm = "myvm".parse::<VmId>().unwrap();
controlvm::kill(&vm).unwrap();
let ten_seconds = Duration::new(10, 0);
wait_for_croak(&vm, Some((ten_seconds, TimeoutAction::Error)));
// revert to a snapshot
let snap = "mysnap".parse::<snapshot::SnapshotId>().unwrap();
snapshot::restore(&vm, Some(snap)).unwrap();
VirtualBox 版本
这个包通常会尝试跟踪 VirtualBox 的最新版本。
环境变量
在某些情况下,vboxhelper 将执行外部命令而没有任何解析输出的意图。在这些情况下,vboxhelper 将默认消费子进程的输出。可以通过设置 VBOXHELPER_VERBOSE
环境变量来更改此行为;将其值设置为 "1"
将使库的输出分别被重定向到 stdout 和 stderr。
如果将 VBOXHELPER_LOGS
变量设置为一个有效的目录,vboxhelper 可能会使用它来存储日志文件。
依赖项
~2.6–3.5MB
~63K SLoC