Dear wiki user,

You have subscribed to a wiki page "Cordova Wiki" for change notification.

The page "CommandLineToolingDesign" has been deleted by purplecabbage:

https://wiki.apache.org/cordova/CommandLineToolingDesign?action=diff&rev1=21&rev2=22

- Specification for both library and project-level command-line scripts for 
Cordova platform libraries.
  
- = High-Level Organization =
- 
- == Library-level ==
- 
- {{{
-     cordova-*
-      `bin
-        |-create
-        `-check_reqs
- }}}
- 
- 
- == Project-level ==
- 
- {{{
-     myapp
-      `cordova
-        |-check_reqs
-        |-clean
-        |-log
-        |-build
-        |-version
-        |-run
-        `-lib
-           |-start-emulator
-           |-install-device
-           |-install-emulator
-           |-list-devices
-           |-list-emulator-images
-           `-list-started-emulators
- }}}
- 
- Anything additional that is necessary for a platform's basic CLI tooling 
(e.g. `ApplicationInfo` on Android) can be placed under `cordova/lib`.
- 
- = Errors =
- 
- The following exit codes should be considered standard:
- 
-  * 1: not implemented / unsupported command
-  * 2: generic runtime error. Accompanied with `stderr` output.
- 
- = Annotations =
- 
- (./) = implemented
- 
- {X} = not implemented
- 
- /!\ = sort of implemented / possible
- 
- = Library-level Script Specification =
- 
- == `check_reqs` ==
- 
- Checks that the current system meets the minimum requirements to create 
cordova-* applications. This includes cordova-specific requirements as well as 
any requirements by the native mobile platform SDK.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- == `create` ==
- 
- {{{
-     create <directory> [package-name [app-name]]
- }}}
- 
- Creates a cordova-* application, which is a standard native mobile 
application for the desired platform, with additional cordova-required bits on 
top. In addition, the script should copy all of the project-level scripts (see 
next section) into the /cordova folder inside the application project folder. 
Finally, it should copy the bin/check_reqs script into project/cordova as well.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- = Project-level Script Specification =
- 
- == Flow for Multiple Devices/Emulators ==
- 
- Several commands require determining a single target out of a potential for 
multiple targets. These scripts are:
- 
-  * `run`
-  * the `install` sub-scripts
-  * `start-emulator`
-  * `log`
- 
- The flow for determining a single target out of many is as follows. Note that 
the distinction between emulator and device may not be applicable for certain 
commands (i.e. `install-device` should not look at emulators, and the converse 
case for `install-emulator`).
- 
-  1. Are there any actual devices available? (use `list-devices` to determine 
this). If so, target the first one. If no, continue.
-  2. Are there any actual emulators available, i.e. started/running? (use 
`list-started-emulators` to determine this). If so, target the first one. If 
no, continue.
-  3. Are there any emulator images available to start? (use 
`list-emulator-images` to determine this). If so, call `start-emulator <id>` of 
the first available image, wait for it to become ready, then target it. If no, 
continue.
-  4. Fail horribly, and exit with code 2.
- 
- == `clean` ==
- 
- Removes/deletes any build artifacts.
- 
- Current implementations:
- 
-  * (./) Android: `ant clean`, which boils down to `rm -rf bin gen`
-  * (./) iOS: `xcodebuild -alltargets clean && rm -rf build` 
-  * (./) !BlackBerry: `rm -rf build`
-  * (./) WP7: `rm -rf obj && rm -rf Build`
-  * (./) WP8: `rm -rf obj && rm -rf Build`
- 
- == `log` ==
- 
- Streams logs from a running cordova application.
- 
- Current implementations:
- 
-  * (./) Android: `adb logcat`
-  * (./) iOS: `tail -f "$CORDOVA_PATH/console.log"` (only works for simulator)
-  * {X} !BlackBerry: no support at this time. Web Inspector direct on device 
or simulator available, though.
-  * {X} WP7
-  * {X} WP8
- 
- == `build` ==
- 
- {{{
-     build [--debug] [--release]
- }}}
- 
- Builds the application and compiles to the platform's appropriate binary 
format. By default builds a debug release (`--debug`), but supports building a 
release (possibly signed) build using `--release` as well. Implicitly calls 
`clean` first. If both `--release` and `--debug` are specified, error out with 
exit code 2 and an appropriate error message.
- 
- Current implementations:
- 
-  * (./) Android w/ `--debug`: `ant debug`
-  * (./) Android w/ `--release`: `ant release`
-  * (./) iOS w/ `--debug`
-  * (./) iOS w/ `--release`
-  * (./) !BlackBerry w/ `--debug`
-  * (./) !BlackBerry w/ `--release`
-  * (./) WP7 w/ `--debug`
-  * (./) WP7 w/ `--release`
-  * (./) WP8 w/ `--debug`
-  * (./) WP8 w/ `--release`
- 
- == `run` ==
- 
- {{{
-     run [--target=<id>]
- }}}
- 
- Deploys a build of the app to an available device or emulator. If `--target` 
is specified, attempts to deploy the app to the device or emulator identified 
by `<id>`. If the attempt fails, the script will error out with code 2. If no 
`--target` is specified, follows the multi-device flow as detailed above. 
Implicitly calls `build` first.
- 
- Current implementations:
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- == Helper Scripts ==
- 
- If we can also standardize on some of the helper scripts located under 
`cordova/lib`, that would be helpful!
- 
- === `list-emulator-images` ===
- 
- Lists out available emulator image IDs. Its main use is passing into 
`start-emulator`. The script should print out, at a minimum, one emulator ID 
per line. If a description of the emulator image is available, each line should 
be in the form `ID DESCRIPTION`. Other tooling can then use the first space as 
a delimiter.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- === `list-started-emulators` ===
- 
- Lists out running emulators. The script should print out, at a minimum, one 
emulator ID per line. If a description of the running emulator is available, 
each line should be in the form `ID DESCRIPTION`. Other tooling can then use 
the first space as a delimiter.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * {X} WP7
-  * {X} WP8
- 
- === `list-devices` ===
- 
- Lists out attached/connected devices. The script should print out, at a 
minimum, one device ID per line. If a description of the device is available, 
each line should be in the form `ID DESCRIPTION`. Other tooling can then use 
the first space as a delimiter.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- === `install-emulator` ===
- 
- {{{
-     install-emulator [--target=id]
- }}}
- 
- Installs a build of the app to an available emulator. If `--target` is 
specified, attempts to install the app to the emulator identified by `<id>`. If 
the attempt fails, the script will error out. If no `--target` is specified, 
follows the multi-device flow as detailed above (but only for emulators). If 
the application is not compiled/built yet, the script will error out and exit 
with code 2.
- 
-  * (./) Android
-  * (./) iOS
-  * {X} !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- === `install-device` ===
- 
- {{{
-     install-device [--target=id]
- }}}
- 
- Installs a build of the app to an available device. If `--target` is 
specified, attempts to install the app to the device identified by `<id>`. If 
the attempt fails, the script will error out. If no `--target` is specified, 
follows the multi-device flow as detailed above (but only for devices). If the 
application is not compiled/built yet, the script will error out and exit with 
code 2.
- 
-  * (./) Android
-  * (./) iOS
-  * {X} !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 
- === `start-emulator` ===
- 
- {{{
-     start-emulator [id]
- }}}
- 
- Starts an emulator image. If `id` is specified, will attempt to start the 
emulator image with the specified ID, or, if not available or unable to start, 
errors out. If no `id` is specified, it will try to start the first available 
emulator. If no emulator images are available, it will error out and exit with 
code 2.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * {X} WP7
-  * {X} WP8
- 
- === `version` ===
- 
- {{{
-     version
- }}}
- 
- Returns the Cordova version.
- 
-  * (./) Android
-  * (./) iOS
-  * (./) !BlackBerry
-  * (./) WP7
-  * (./) WP8
- 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to