You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the autocomplete generator runs my app over 60 times (once for the list of commands, and then once per command).
Capturing what is actually run ...
Array
(
[0] => ./wu list --raw | awk '{if (NF>1) print $1 " " substr($0, index($0,$2)); else print $1}'
[1] => ./wu help --format=xml bulk-redeem
[2] => ./wu help --format=xml capture-mobi
[3] => ./wu help --format=xml dump-session
[4] => ./wu help --format=xml generate-offer-codes
[5] => ./wu help --format=xml help
[6] => ./wu help --format=xml list
[7] => ./wu help --format=xml protect-migrations
[8] => ./wu help --format=xml reset-migrations
[9] => ./wu help --format=xml update-hosts
[10] => ./wu help --format=xml code:verify-subscriber-signatures
...
But all that data is available via 1 command:
./wu --xml list
Here's an edited snippet of the output (matching the list of calls above) ...
<?xml version="1.0" encoding="UTF-8"?>
<symfonyname="Workflow Utilities"version="Enchilada">
<commands>
<commandid="bulk-redeem"name="bulk-redeem">
<usages>
<usage>bulk-redeem [--salesStart [SALESSTART]] [--salesEnd [SALESEND]] [--effectiveRedemptionDate [EFFECTIVEREDEMPTIONDATE]] [--unredeem] [--dry-run] [--] <companyID></usage>
</usages>
<description>Bulk redeem items, based on certain criteria <fire>[ Development Only ]</fire></description>
<help>This will fully redeem orders based on criteria supplied on the command line.
A daily log will be produced in <fg=yellow>/Users/richardquadling/dt/app/logs/Development/BulkRedeem/</fg=yellow>.
</help>
<arguments>
<argumentname="companyID"is_required="1"is_array="0">
<description>Required companyID</description>
<defaults/>
</argument>
</arguments>
<options>
<optionname="--salesStart"shortcut=""accept_value="1"is_value_required="0"is_multiple="0">
<description>Only include items sold since this date-time (eg. "2016-10-09 09:00:00")</description>
<defaults/>
</option>
<optionname="--salesEnd"shortcut=""accept_value="1"is_value_required="0"is_multiple="0">
<description>Only include items sold up until this date-time (eg. "2016-10-10 23:59:59")</description>
<defaults/>
</option>
<optionname="--effectiveRedemptionDate"shortcut=""accept_value="1"is_value_required="0"is_multiple="0">
<description>The redemption date-time to use (eg. "2016-01-01 00:00:00"). Defaults to "now".</description>
<defaults/>
</option>
<optionname="--unredeem"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Un-redeem the matching items</description>
</option>
<optionname="--dry-run"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Dry run - do not make any changes</description>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="capture-mobi"name="capture-mobi">
<usages>
<usage>capture-mobi [-i|--ip-address IP-ADDRESS] [-u|--username USERNAME] [-p|--password PASSWORD] [--enable] [--disable]</usage>
</usages>
<description>Tell the router to redirect the .MOBI domain to this machine <fire>[ Development Only ]</fire></description>
<help>The .MOBI domain is directed to the public IP address of the router.
This program will tell the router to redirect requests, both HTTP and HTTPS, to this machine
Optionally, it can be told to redirect to another machine.</help>
<arguments/>
<options>
<optionname="--ip-address"shortcut="-i"accept_value="1"is_value_required="1"is_multiple="0">
<description>Use this IP address</description>
<defaults>
<default>xxxxxxxx</default>
</defaults>
</option>
<optionname="--username"shortcut="-u"accept_value="1"is_value_required="1"is_multiple="0">
<description>Router username</description>
<defaults>
<default>xxxxxxxxxx</default>
</defaults>
</option>
<optionname="--password"shortcut="-p"accept_value="1"is_value_required="1"is_multiple="0">
<description>Router password</description>
<defaults>
<default>xxxxxxxxxx</default>
</defaults>
</option>
<optionname="--enable"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Enable NAT redirection for the .MOBI domain to this machine.</description>
</option>
<optionname="--disable"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable NAT redirection for the .MOBI domain to this machine.</description>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="dump-session"name="dump-session">
<usages>
<usage>dump-session [-w|--watch] [--] <session></usage>
</usages>
<description>Dump session <fire>[ Personal Only ]</fire></description>
<help>Dump session <fire>[ Personal Only ]</fire></help>
<arguments>
<argumentname="session"is_required="1"is_array="0">
<description>Session filename in <file>~/dt/data/sessions</file>.</description>
<defaults/>
</argument>
</arguments>
<options>
<optionname="--watch"shortcut="-w"accept_value="0"is_value_required="0"is_multiple="0">
<description>Watch for changes to the file</description>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="generate-offer-codes"name="generate-offer-codes">
<usages>
<usage>generate-offer-codes [-s|--save] [-e|--environment ENVIRONMENT] [--] <offerID><qty></usage>
</usages>
<description>Generate a number of unique codes for an offer <fire>[ Development Only ]</fire></description>
<help>Generate a number of unique codes for an offer <fire>[ Development Only ]</fire></help>
<arguments>
<argumentname="offerID"is_required="1"is_array="0">
<description>The ID of the offer for which you want to generate coupon codes</description>
<defaults/>
</argument>
<argumentname="qty"is_required="1"is_array="0">
<description>The number of coupon codes you wish to generate</description>
<defaults/>
</argument>
</arguments>
<options>
<optionname="--save"shortcut="-s"accept_value="0"is_value_required="0"is_multiple="0">
<description>Whether to actually persist the generated code to the database</description>
</option>
<optionname="--environment"shortcut="-e"accept_value="1"is_value_required="1"is_multiple="0">
<description>The system you wish to generate offer codes in (development, staging, etc)</description>
<defaults>
<default>development</default>
</defaults>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="help"name="help">
<usages>
<usage>help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]</usage>
</usages>
<description>Displays help for a command</description>
<help>The <info>help</info> command displays help for a given command:
<info>php ./wu help list</info>
You can also output the help in other formats by using the <comment>--format</comment> option:
<info>php ./wu help --format=xml list</info>
To display the list of available commands, please use the <info>list</info> command.</help>
<arguments>
<argumentname="command_name"is_required="0"is_array="0">
<description>The command name</description>
<defaults>
<default>help</default>
</defaults>
</argument>
</arguments>
<options>
<optionname="--xml"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>To output help as XML</description>
</option>
<optionname="--format"shortcut=""accept_value="1"is_value_required="1"is_multiple="0">
<description>The output format (txt, xml, json, or md)</description>
<defaults>
<default>txt</default>
</defaults>
</option>
<optionname="--raw"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>To output raw command help</description>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="list"name="list">
<usages>
<usage>list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]</usage>
</usages>
<description>Lists commands</description>
<help>The <info>list</info> command lists all commands:
<info>php ./wu list</info>
You can also display the commands for a specific namespace:
<info>php ./wu list test</info>
You can also output the information in other formats by using the <comment>--format</comment> option:
<info>php ./wu list --format=xml</info>
It's also possible to get raw list of commands (useful for embedding command runner):
<info>php ./wu list --raw</info></help>
<arguments>
<argumentname="namespace"is_required="0"is_array="0">
<description>The namespace name</description>
<defaults/>
</argument>
</arguments>
<options>
<optionname="--xml"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>To output list as XML</description>
</option>
<optionname="--raw"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>To output raw command list</description>
</option>
<optionname="--format"shortcut=""accept_value="1"is_value_required="1"is_multiple="0">
<description>The output format (txt, xml, json, or md)</description>
<defaults>
<default>txt</default>
</defaults>
</option>
</options>
</command>
<commandid="protect-migrations"name="protect-migrations">
<usages>
<usage>protect-migrations [-r|--rename] [--force] [-d|--down-only]</usage>
</usages>
<description>Rename local migrations that have not been deployed so that they are at the head of the queue. <fire>[ Development Only ]</fire></description>
<help>The purpose of this script is to examine any migrations that have not been run on the production
environment and to move them so that no rollback is performed on the production environment.
For example, if a 2 independent feature branches are developed, each with their own migrations, are
feature finished and released at different times, the second branch's migrations will appear as "down"
within the live migrations.
When these are migrated, phinx will rollback the new migrations necessary to run all of the migrations
in order.
This will almost certainly result in data loss.
So this script is an attempt to prevent that from happening.
The steps taken are as follows:
1 - Identify all the migrations in the codebase.
2 - Identify all the migrations in the production environment.
3 - Analyse the dates to make sure that all of the outstanding migrations will not cause any rollback in
the production environment.
4 - Optionally, renumber all the outstanding migrations, preserving their order, so that they all occur
after the most recent production migration.
Ideally, this needs to be done just before branch is merged and deployed and run for one branch at a time</help>
<arguments/>
<options>
<optionname="--rename"shortcut="-r"accept_value="0"is_value_required="0"is_multiple="0">
<description>Rename the migration SQL scripts.</description>
</option>
<optionname="--force"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force a rename even if migrations are correctly positioned.</description>
</option>
<optionname="--down-only"shortcut="-d"accept_value="0"is_value_required="0"is_multiple="0">
<description>Only rename migrations that are down locally.</description>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="reset-migrations"name="reset-migrations">
<usages>
<usage>reset-migrations [--reset-migrations] [-m|--mysqldump-path MYSQLDUMP-PATH] [-e|--environment ENVIRONMENT]</usage>
</usages>
<description>Remove all migrations and rebuild the initial data structure and seed data SQL files. <fire>[ Development Only ]</fire></description>
<help>The purpose of this script is to remove all migrations and rebuild the initial data structure and the seed data SQL files.</help>
<arguments/>
<options>
<optionname="--reset-migrations"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Reset phinx and remove the migrations. Without this option, only the initial schema and seed data SQL files will be built.</description>
</option>
<optionname="--mysqldump-path"shortcut="-m"accept_value="1"is_value_required="1"is_multiple="0">
<description>Alternative path to mysqldump utility</description>
<defaults/>
</option>
<optionname="--environment"shortcut="-e"accept_value="1"is_value_required="1"is_multiple="0">
<description>The target environment</description>
<defaults>
<default>development</default>
</defaults>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="update-hosts"name="update-hosts">
<usages>
<usage>update-hosts [-s|--specific-ip SPECIFIC-IP] [--] [<hosts>]</usage>
</usages>
<description>Add all DigiTickets sub-domains to your local hosts file <fire>[ Development Only ]</fire></description>
<help>This program will add all the sub-domains from the digitickets.companies database to your local hosts file.</help>
<arguments>
<argumentname="hosts"is_required="0"is_array="0">
<description>The full filename of your hosts file</description>
<defaults>
<default>/etc/hosts</default>
</defaults>
</argument>
</arguments>
<options>
<optionname="--specific-ip"shortcut="-s"accept_value="1"is_value_required="1"is_multiple="0">
<description>The specific IP address to use for the sub-domains</description>
<defaults>
<default>127.0.0.1</default>
</defaults>
</option>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
<commandid="code:verify-subscriber-signatures"name="code:verify-subscriber-signatures">
<usages>
<usage>code:verify-subscriber-signatures</usage>
</usages>
<description>Verify that the signatures of the PHPMaker CMS Subscribers are correctly following our pattern <fire>[ Development and Staging Only ]</fire></description>
<help>Verify that the signatures of the PHPMaker CMS Subscribers are correctly following our pattern.
This will alert you to any naming collisions that previously existed</help>
<arguments/>
<options>
<optionname="--help"shortcut="-h"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this help message</description>
</option>
<optionname="--quiet"shortcut="-q"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not output any message</description>
</option>
<optionname="--verbose"shortcut="-v"shortcuts="-v|-vv|-vvv"accept_value="0"is_value_required="0"is_multiple="0">
<description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
</option>
<optionname="--version"shortcut="-V"accept_value="0"is_value_required="0"is_multiple="0">
<description>Display this application version</description>
</option>
<optionname="--ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Force ANSI output</description>
</option>
<optionname="--no-ansi"shortcut=""accept_value="0"is_value_required="0"is_multiple="0">
<description>Disable ANSI output</description>
</option>
<optionname="--no-interaction"shortcut="-n"accept_value="0"is_value_required="0"is_multiple="0">
<description>Do not ask any interactive question</description>
</option>
</options>
</command>
</commands>
<namespaces>
<namespaceid="_global">
<command>bulk-redeem</command>
<command>capture-mobi</command>
<command>dump-session</command>
<command>generate-offer-codes</command>
<command>help</command>
<command>list</command>
<command>protect-migrations</command>
<command>reset-migrations</command>
<command>update-hosts</command>
</namespace>
<namespaceid="code">
<command>code:verify-subscriber-signatures</command>
</namespace>
</namespaces>
</symfony>
The only minor difference is that the descriptions are still with their styling. (e.g. <fire>[ DEVELOPMENT ONLY ]</fire>)
But (at least for bash), the descriptions aren't used anywhere in $(brew --prefix)/etc/bash_completion.d/wu, so maybe that's a non-issue.
If this is also true for the other shells, then calling the application once rather than n+1 times results in a nicer experience and means keeping the autocomplete uptodate isn't as long as it currently is.
The text was updated successfully, but these errors were encountered:
Currently, the autocomplete generator runs my app over 60 times (once for the list of commands, and then once per command).
Capturing what is actually run ...
But all that data is available via 1 command:
Here's an edited snippet of the output (matching the list of calls above) ...
The only minor difference is that the descriptions are still with their styling. (e.g.
<fire>[ DEVELOPMENT ONLY ]</fire>
)But (at least for bash), the descriptions aren't used anywhere in
$(brew --prefix)/etc/bash_completion.d/wu
, so maybe that's a non-issue.If this is also true for the other shells, then calling the application once rather than n+1 times results in a nicer experience and means keeping the autocomplete uptodate isn't as long as it currently is.
The text was updated successfully, but these errors were encountered: