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

1"""CLI""" 

2 

3from typing import cast 

4import gws 

5import gws.config 

6import gws.base.action 

7 

8 

9from . import action 

10 

11class PackageRequest(gws.Request): 

12 projectUid: str 

13 qfcProjectUid: str 

14 dir: str 

15 actionName: str = '' 

16 

17class Object(gws.Node): 

18 

19 @gws.ext.command.cli('qfieldcloudPackage') 

20 def invoke(self, p: PackageRequest): 

21 """Package a QField Cloud project.""" 

22 

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 

28 

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 

33 

34 sys_user = act.root.app.authMgr.systemUser 

35 act.create_package_from_cli(p.qfcProjectUid, p.dir, project, sys_user) 

36