///|
fn cli_options(small : Bool) -> @nfs.Options raise {
let options = @nfs.Options::{
..@nfs.Options::default(),
uid: env_uid("NFS_UID", 65534U),
gid: env_uid("NFS_GID", 65534U),
timeout_ms: env_number("NFS_TIMEOUT_MS", 10000),
max_entries: env_number("NFS_MAX_ENTRIES", 100000),
block_size: env_number("NFS_BLOCK_SIZE", if small { 4096 } else { 65536 }),
max_record: env_number("NFS_MAX_RECORD", if small { 8192 } else { 1048576 }),
}
options.validate()
options
}
///|
async fn connect_destination(
host : String,
export_path : String,
) -> @nfs.Client {
let defaults = cli_options(false)
let options = @nfs.Options::{
..defaults,
uid: env_uid("NFS_DEST_UID", defaults.uid),
gid: env_uid("NFS_DEST_GID", defaults.gid),
}
@nfs.connect_export(
host,
export_path,
mount_port=env_number(
"NFS_DEST_MOUNT_PORT",
env_number("NFS_MOUNT_PORT", 0),
),
nfs_port=env_number("NFS_DEST_PORT", env_number("NFS_PORT", 0)),
options~,
)
}