diff --git a/doc/man/ade-info.1 b/doc/man/ade-info.1 index 013574457096c9516a406ccaa9c7c4e2d21eb960..56d404f48742738e9eb38e28b4bea7612cc30e55 100644 --- a/doc/man/ade-info.1 +++ b/doc/man/ade-info.1 @@ -13,6 +13,7 @@ ade-info \- Print information about an entity .sp .nf \fIade info\fR --device [<user>[:<pass>]@]<hostname>[:<port>] +\fIade info\fR --project \fIade info\fR --sdk \fIade info\fR --sysroot <sysroot> .fi @@ -30,6 +31,13 @@ Return image version of given device (e.g. user@apertis)\&. .sp .RE .PP +\fI\-\-project\fR +.RS 4 +Return information about project in current directory (name, version +and bundle\-id)\&. +.sp +.RE +.PP \fI\-\-sdk\fR .RS 4 Return SDK version\&. diff --git a/tools/ade b/tools/ade index a8e631dce74b2fa16a79f30f45a69c0774482bf9..fcd18a7bca3add633160855eba1865bee9895a34 100755 --- a/tools/ade +++ b/tools/ade @@ -585,6 +585,8 @@ class Project: def __init__(self, path=None, bundle_id=None): self.bundle_id = None + self.name = None + self.version = None if not path: path = os.getcwd() @@ -600,6 +602,8 @@ class Project: def check_validity(self): if not self.bundle_id: raise InvalidProjectError("Property 'BundleId' is not specified") + if not self.version: + raise InvalidProjectError("Property 'Version' is not specified") def find_root(self, path): p = pathlib.Path(path) @@ -619,6 +623,8 @@ class Project: with open(path) as f: info = json.load(f) self.bundle_id = info['BundleId'] + self.name = info['Name'] + self.version = info['App_Version'] except: pass @@ -718,6 +724,7 @@ class Ade: self.simulator = False self.sysroot = None self.device = None + self.project = False self.bundle_id = None @@ -803,6 +810,11 @@ class Ade: self.target.load_sysroot_version() except InvalidDeviceError as e: self.die("Invalid device: {0}".format(e)) + elif self.project: + try: + self.target = Project() + except InvalidProjectError as e: + self.die("Invalid project: {0}".format(e)) else: self.die("No target (simulator, sysroot or device) specified") @@ -1012,6 +1024,14 @@ class Ade: .format(Colors.WARNING, self.target.version, Colors.ENDC)) if self.format == 'parseable': print("ImageVersion:{0}".format(self.target.version.get_tag())) + elif isinstance(target, Project): + self.info("* Project: {0}{1}{2}".format(Colors.WARNING, self.target.name, Colors.ENDC)) + self.info("* BundleId: {0}".format(self.target.bundle_id)) + self.info("* Version: {0}".format(self.target.version)) + if self.format == 'parseable': + print("ProjectName:{0}".format(self.target.name)) + print("BundleId:{0}".format(self.target.bundle_id)) + print("AppVersion:{0}".format(self.target.version)) def do_configure(self): target = self.get_target() @@ -1031,7 +1051,7 @@ class Ade: .format(Colors.OKBLUE, version.get_name(), Colors.ENDC)) try: - project = Project(os.getcwd(), bundle_id=self.bundle_id) + project = Project(bundle_id=self.bundle_id) project.configure(sysroot, debug=self.debug, force=self.force, args=self.args) except Exception as e: self.die("Couldn't configure project: {0}".format(e)) @@ -1077,6 +1097,7 @@ if __name__ == '__main__': group.add_argument('--sdk', help="Use SDK as target", action='store_true') group.add_argument('--sysroot', help="Use sysroot as target (e.g. apertis-16.12-armhf)") group.add_argument('--device', help="Use device as target (e.g. user:pass@apertis)") + group.add_argument('--project', help="Use current directory project as target", action='store_true') # Sysroot parser sysroot_parser = subparsers.add_parser('sysroot', help='Sysroot related commands')