Module: Bsdkrun::Args
- Defined in:
- lib/bsdkrun/args.rb
Overview
Builds the bsdkrun argv (minus the binary and global flags) for a detached
create. Every path ends with -d so create yields a handle.
Options are a Hash with Symbol keys mirroring the TypeScript SDK's
CreateOptions, discriminated on :os.
Class Method Summary collapse
-
.build_create_args(opts) ⇒ Array<String>
Build the full detached
createargv for the given options. -
.disk_args(o) ⇒ Array<String>
Disk-persistence flags shared by BSD / firmware / kernel guests.
-
.name_args(o) ⇒ Array<String>
--nameflag if a name is set. -
.net_args(net) ⇒ Array<String>
Networking flags shared by every guest kind.
-
.vm_args(o) ⇒ Array<String>
--cpus/--memsizing flags.
Class Method Details
.build_create_args(opts) ⇒ Array<String>
Build the full detached create argv for the given options.
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/bsdkrun/args.rb', line 61 def build_create_args(opts) case opts[:os].to_s when "linux" then linux_args(opts) when "freebsd" then freebsd_args(opts) when "netbsd" then netbsd_args(opts) when "firmware" then firmware_args(opts) when "kernel" then kernel_args(opts) else raise ArgumentError, "unknown os: #{opts[:os].inspect}" end end |
.disk_args(o) ⇒ Array<String>
Disk-persistence flags shared by BSD / firmware / kernel guests.
48 49 50 51 52 53 54 |
# File 'lib/bsdkrun/args.rb', line 48 def disk_args(o) a = [] a.push("--persist") if o[:persist] a.push("-v", o[:volume]) if o[:volume] Array(o[:attach_disk]).each { |d| a.push("--attach-disk", d) } a end |
.name_args(o) ⇒ Array<String>
--name flag if a name is set.
31 32 33 |
# File 'lib/bsdkrun/args.rb', line 31 def name_args(o) o[:name] ? ["--name", o[:name].to_s] : [] end |
.net_args(net) ⇒ Array<String>
Networking flags shared by every guest kind.
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/bsdkrun/args.rb', line 15 def net_args(net) a = [] return a unless net a.push("--no-net") if net[:disabled] Array(net[:ports]).each do |p| a.push("--port", p.is_a?(String) ? p : "#{p[:host]}:#{p[:guest]}") end a.push("--mac", net[:mac]) if net[:mac] a.push("--network", net[:network]) if net[:network] a end |
.vm_args(o) ⇒ Array<String>
--cpus / --mem sizing flags.
38 39 40 41 42 43 |
# File 'lib/bsdkrun/args.rb', line 38 def vm_args(o) a = [] a.push("--cpus", o[:cpus].to_s) unless o[:cpus].nil? a.push("--mem", o[:mem].to_s) unless o[:mem].nil? a end |