Ok, so re-worked it and am pretty happy with it now.

The searching of new packages is done by the Dub class now, so no hacky

auto ps = new RegistryPackageSupplier(URL.parse("http://code.dlang.org/"));

anymore.

I've tested it a bit (with a list of good package names, bad package names, good and bad, no package names etc.)

The current "type" functionality where you pass "minimal", "vibe.d" or "deimos" to dub init has been moved into the --type option.

For example, the command:

dub init myProject vibe-d openssl logger --type=vibe.d

will produce the following dub.json

{
	"name": "myproject",
	"description": "A simple vibe.d server application.",
	"copyright": "Copyright © 2014, Colin",
	"authors": ["Colin"],
	"dependencies": {
		"logger": "0.3.3",
		"vibe-d": "0.7.21-rc.4",
		"openssl": "1.1.3+1.0.1g"
	},
	"versions": ["VibeDefaultMain"]
}

I've checked what running it with no network connection, and while it doesn't fall over, it does wait for the server request to time-out (so 2 or 3 seconds for each package name in the list), which is a little annoying, but not overly debilitating.

It's up here:
https://github.com/grogancolin/dub/tree/init-with-dependencies

Would appreciate if people give it a quick test to see if it works for them?

I've used Windows 7 and a linux box (Ubuntu 12.04 I think...)

Thanks!