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 次下载

0BSD 许可证

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