Andrew wrote: > Android and iOS have empty functions for check_requirements(), > and I think that's the right way to go. Never really discussed it on list > though, > so wanted to share why I think this.
> the motivation was to run some checks *before* downloading the platform. At one point, something was also responsible for preventing the Apple platforms from downloading on non Apple platforms, but I think I took away that part of the equation :). > It turned out that downloading platforms is not very expensive, > and having the platform requirements check code both in the platform > (where it is needed) and in CLI (copy & paste job), wasn't adding much value. > So... Platforms changed to lazy-loading first, then calling out to the > > check() within the downloaded platform. yep > Now, since platforms scripts all work without CLI, it's important that > > commands like `create` call check_requirements themselves before running, yep > and as far as I'm away, most platforms do this. So... now we've got the > > same check() function being called twice. First by > CLI's check_requirements(), then by the create() script itself. yep > So, I think the best thing to do is just delete check_requirements() from > > CLI and expect that the platform scripts do some checks themselves. I guess I'm not opposed, this cleans up some code that I've been trying to manipulate in various ways. The blackberry10 implementation more or less is such that check_reqs calls init, and pretty much everything else in blackberry10 also calls init, and the actual requirement checking is done in init. My experience w/ Android is that `cordova platform add android` generally fails because android/ant aren't in the user's PATH, and it doesn't really enforce it well (I'm trying to be polite with this understatement). So, +1.