summaryrefslogtreecommitdiff
path: root/doc/controller.qdoc
blob: cb34f67f66824efedacfc1b50539044dc9d15200 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// Copyright (C) 2021 The Qt Company Ltd.
// Copyright (C) 2019 Luxoft Sweden AB
// Copyright (C) 2018 Pelagicore AG
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page appman-controller.html
\title Controller
\brief A command-line utility to remote control the application manager on a target device.
\ingroup qtappman-tools

The \c{appman-controller} is a command-line utility that can be used by the developer, or
indirectly by other tools, on the target device to control the application manager without
communicating directly with its D-Bus interface.

\note In order to use this tool, the application manager has to be connected to either a session- or
system-bus; don't run it with \c{--dbus none}.

If you are running multiple application manager instances in the same system, you need to first
\l{instance-id}{assign unique instance-ids} to each of them and then you can address them
individually from the \c appman-controller tool by using the \c --instance-id command line option.

The following commands are available:

\table
\header
    \li Command
    \li Arguments
    \li Description
\row
    \li \span {style="white-space: nowrap"} {\c start-application}
    \li \c{<application-id>}

        \c{[document-url]}
    \li Starts the application with \c application-id within the application manager.
\row
    \li \span {style="white-space: nowrap"} {\c debug-application}
    \li \c{<debug-wrapper-specification>}

        \c{<application-id>}

        \c{[document-url]}
    \li Starts the application with \c application-id within the application manager using
        a debug-wrapper. For more information, see \l{DebugWrappers}.
\row
    \li \span {style="white-space: nowrap"} {\c stop-application}
    \li \c{<application-id>}
    \li Stops the application with \c application-id.
\row
    \li \span {style="white-space: nowrap"} {\c stop-all-applications}
    \li (none)
    \li Stops all applications that are running within the application manager.
\row
    \li \span {style="white-space: nowrap"} {\c list-applications}
    \li (none)
    \li Outputs all available application IDs on the console, one per line.
\row
    \li \span {style="white-space: nowrap"} {\c show-application}
    \li \c{<application-id>}
    \li Shows the current metadata for the given application in YAML format. Alternatively, use
        \c{--json} to get the metadata in JSON format instead.
\row
    \li \span {style="white-space: nowrap"} {\c list-packages}
    \li (none)
    \li Outputs all available package IDs on the console, one per line.
\row
    \li \span {style="white-space: nowrap"} {\c show-package}
    \li \c{<package-id>}
    \li Shows the current metadata for the given package in YAML format. Alternatively, use
        \c{--json} to get the metadata in JSON format instead.
\row
    \li \span {style="white-space: nowrap"} {\c install-package}
    \li \c{<package>}
    \li Installs the package given on the command-line. If the package file is specified as \c{-},
        the tool tries to read the package from \c stdin. The following options are supported:

        \c{-a, --acknowledge}: Automatically acknowledge the installation, instead of relying on
        the System UI's logic.
\row
    \li \span {style="white-space: nowrap"} {\c remove-package}
    \li \c{<package-id>}
    \li Removes the package, specified with \c package-id. The following options are
        supported:

        \c{-f, --force}: Force removal of package.

        \c{-k, --keep-documents}: Keep the document folder of the package.
\row
    \li \span {style="white-space: nowrap"} {\c list-installation-locations}
    \li (none)
    \li Lists all installaton locations.
\row
    \li \span {style="white-space: nowrap"} {\c show-installation-location}
    \li \c{<installation-location>}
    \li Shows details for the specified \c installation-location in YAML format. Alternatively, use
        \c{--json} to get the location details in JSON format instead.
\row
    \li \span {style="white-space: nowrap"} {\c list-instances}
    \li (none)
    \li Lists all currently running \l{instance-id}{named} application manager instances.
\row
    \li \span {style="white-space: nowrap"} {\c inject-intent-request}
    \li \c{<intent-id>}

        \c{[parameters as json string]}
    \li Injects an intent request into the application manager for testing or debugging purposes.
        This only works, if the application manager is running in \l{development-mode}{developmentMode}.

        The parameters have to be supplied as a single argument JSON string - make sure to correctly
        escape any quotation marks when running from a shell.

        By default, the injected intent request will have a requesting application id of \c{:sysui:}
        (the System UI) and no handling application id. You can use the following command line
        options to change this behavior:

        \c{--requesting-application-id} Fake the requesting application id.

        \c{--application-id} Specify the handling application id to prevent disambiguation.

        \c{--broadcast} Instead of a directed request, create a broadcast.

        Please note that \c{--application-id} and \c{--broadcast} are mutually exclusive.

        For successful non-broadcast requests, the result will be printed to the console as JSON.
\endtable

The \c{appman-controller} naturally supports the standard Unix \c{--help} command-line option.
*/