--build
--clean
--> ???
These seem to be the “operating modes” (my term). Many CLIs use subcommands for
these situations: git commit
git add
. So it could be:
./whonix build --param v --param v
./whonix clean
But if that adds to much complexity to the CLI, you can keep them as
–build|–clean
--base-os debian|ubuntu|gentoo
Consider simply “–os”. The shorter the better (but I have no problem with
base-os)
./whonix build --os debian
--virtualbox
--qcow2
--install-to-root
--> --target virtualbox|qcow2|root
Agreed.
./whonix build --os debian --target virtualbox
--whonix-gateway
--whonix-workstation
--whonix-custom-workstation
--"plain"
--> --extra whonix-gateway|whonix-workstation|whonix-custom-workstation|none
How about “whonix” ? 
–whonix gateway|workstation|custom|none
./whonix build --os debian --whonix gateway
--all
--> ???
I don’t like “all”. It sounds error prone. But you’ll have to answer: “Can the
user build more than one image at a time?”. For simplicity and sanity, I say no.
If you want to build multiple images in one command, use &&
--internalrun
--> as is
Hrm. Is this like “–dry-run” (simulate effects?)
--vmram 128
--vram 12
--vmsize 200G
--> as is
Agreed.
--terminal-only
--> --gui true|false
Agreed.
--no-default-applications
--> --default-applications true|false
–applications or --apps
--current-sources
--testing-frozen-sources
--> --sources-freshness frozen|current
–freshness
--486-linux
--32bit-linux
--64bit-linux
--64bit-kfreebsd
--32bit-kfreebsd
--> --kernel-flavor linux|kfreebsd ????????????
--> --arch i386|amd64
–kernel
Damn. The i and amd and x86_64 stuff always confuses me. i386 is 32-bit and
amb64 is 64-bit, right? Can we just say that? --arch (or --bit) 32|64. Hrmph.
But what about when we do ARM builds? --arch arm8|32|64 ?
--whonix-apt-repository-distribution wheezy
--whonix-apt-repository-distribution testers
--whonix-apt-repository-distribution developers
--> as is --whonix-apt-repository-distribution wheezy|testers|developers
–whonix-repo
--enable-whonix-apt-repository
--> ???
Merge with above:
–whonix-repo disable|wheezy|testers|developers
“off” or “disable”. You pick.
--minimal-report
-> minimal|full
–report minimal|full
--verifiable
--> true|false
--skip-sanity-tests
--> sanity-tests true|false
--help
--> as is
--no-validate-libvirt-xml
--> validate-libvirt-xml true|false
--fast1
--fast2
--> --fast 1|2
--file-system
--hostname
--os-password
--debopt
All agreed.
--auto-retry
--> auto-retry-max 0|1|2|...
--wait-auto-retry
--> auto-retry-wait 0|1|2|...
Or just --retry-wait and --retry-max
--dispatch-before-retry
--> auto-retry-dispatch-before script
--dispatch-after-retry
--> auto-retry-dispatch-after script
–retry-before ? Dunno.
–retry-after
--ignore-uncommitted
--> --allow-uncommitted false|true
Looks good.
Edit by Patrick:
Disabled smileys.