Coverage for gws-app / gws / plugin / qfieldcloud / cli.py: 0%
24 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
1"""CLI"""
3from typing import cast
4import gws
5import gws.config
6import gws.base.action
9from . import action
11class PackageRequest(gws.Request):
12 projectUid: str
13 qfcProjectUid: str
14 dir: str
15 actionName: str = ''
17class Object(gws.Node):
19 @gws.ext.command.cli('qfieldcloudPackage')
20 def invoke(self, p: PackageRequest):
21 """Package a QField Cloud project."""
23 root = gws.config.load()
24 project = root.app.project(p.projectUid)
25 if not project:
26 gws.log.error(f'project {p.projectUid!r} not found')
27 return
29 act_name = p.actionName or 'qfieldcloud'
30 act = cast(action.Object, gws.base.action.get_action_for_cli(root, act_name, p.projectUid))
31 if not act:
32 return
34 sys_user = act.root.app.authMgr.systemUser
35 act.create_package_from_cli(p.qfcProjectUid, p.dir, project, sys_user)