I was just able to create a new google account with no phone number.
docker run -itv /:/host ubuntu chroot /host λ | -> session --usage
Usage:
session -- Create or enter default session 'misc/dev'.
session <category> <session> -- Create or enter session '<category>/<session>'.
session <session> -- Search all categories for matching session, switch to result if unique.
λ | -> sessions --usage
Usage:
sessions [--style=<Style> (boxed compact)] -- Default display style is boxed.
The latter example is generated entirely from these two declarations: enum Style <boxed compact>;
#|(Default display style is boxed.)
sub MAIN(Style :$style = boxed) { ... }
[1] For anyone interested, you can have your cake and eat it too. Defining your own USAGE routine doesn't mean you have to give up the generated one. The generated output is available in the $*USAGE variable. my @private-ranges = <10.0.0.0/8 172.16.0.0/12 192.168.0.0/16>;
subset IPv4::Private of IPv4 where -> $ip { Net::Netmask.new(any @private-ranges).match($ip) };
Then simply defining MAIN with a typed (and named, in this case, hence the colon) argument will handle all the checking at the type level. sub MAIN(IPv4::Private :$ip) { ... }
Now I won't be able to deploy this service on a public IP as long as I use this deploy script as a primitive in whatever eventual solution I end up with, and the automatically generated usage message even helps communicate why a call failed (provided you have descriptive type/parameter names). λ | ./deploy --ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
Usage:
./deploy.p6 [--ip=<Private>]
λ | ./deploy --ip=10.0.0.2
Deploy successful.