summaryrefslogtreecommitdiffstats
path: root/doc/controller.qdoc
blob: 9a6d141362420838f122b089650427452a48a847 (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
129
130
131
132
133
134
135
136
// 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-tasks}
    \li (none)
    \li Lists all active installation tasks.
\row
    \li \span {style="white-space: nowrap"} {\c cancel-installation-task}
    \li \c{<task-id>}
    \li Cancels an active installation task, specified with \c task-id.
\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.
*/