        ('-. .-.   ('-.             _ (`-.
       ( OO )  / _(  OO)           ( (OO  )
       ,--. ,--.(,------.,--.     _.`     \
       |  | |  | |  .---'|  |.-')(__...--''
       |   .|  | |  |    |  | OO )|  /  | |
       |       |(|  '--. |  |`-' ||  |_.' |
       |  .-.  | |  .--'(|  '---.'|  .___.'
       |  | |  | |  `---.|      | |  |
       `--' `--' `------'`------' `--'

usage:

$ gina --help | -h
$ gina help [<group>]
$ gina --version | -v
$ gina --status | -t
$ gina framework:start | start

    Start the framework socket server (port 8124) + MQ listener (8125) in the
    background. Required before any online command (e.g. bundle:start).

$ gina framework:stop | stop [ @<version> ]

    Stop the framework socket server only. Running bundles are detached and keep
    running — `framework:stop` does NOT stop them. It lists any bundle left
    running on exit; stop those with `gina bundle:stop <bundle> @<project>` or
    `gina project:stop @<project>`. Pass @<version> to target an installed
    version other than the default.

$ gina framework:restart | restart

    Restart the framework socket server only. Running bundles are left running.

$ gina framework:update [ --to-version=<v> ] [ --fix ] [ --format=json ]
$ gina framework:add <version> [ --force ] [ --dry-run ] [ --format=json ]

    Install a published gina version side-by-side: downloads it from npm,
    installs its deps, archives it under ~/.gina/archives/framework, symlinks it
    into the active install, and registers it so a bundle can pin it via
    --gina-version=<version>. Additive — never changes the default version.

$ gina framework:list [ --all ] [ --format=json ]

    List the framework versions known to this install: the active version,
    side-by-side symlinked versions, and archived copies. Pass --all to also
    include versions registered in main.json but not present on disk.

$ gina framework:remove <version> [ --force ] [ --dry-run ] [ --format=json ]

    Remove a side-by-side installed version: unlinks it from the active install,
    deletes its archived copy, and deregisters it from main.json. Refuses to
    remove the active default or the real shipped version; pass --force to remove
    a version a bundle still pins, --dry-run to preview.

$ gina framework:reset [ --force ]

    Factory reset — clears ~/.gina (settings, projects, env, ports) so it
    rebuilds to defaults on the next command. Shorthand: `gina reset`.
    Refuses while the daemon or bundles are running, unless --force.

$ gina framework:man | man
$ gina project:man
$ gina bundle:man
$ gina service:man


*
* Settings - Reads/Modifies ~/home/.gina/settings.json
*

$ gina set --key=value ( eg: gina set --defaultEnv=dev )

$ gina get --key | key ( eg: gina get defaultEnv )
$ gina get --key1 --key2 ( eg: gina get --port --env )
$ gina get --all | all ( eg: gina get all )

    Shorthand `gina get` is equivalent to `gina framework:get`.
    Shorthand `gina set` is equivalent to `gina framework:set`.

$ gina <service|bundle>:<action> <arguments>