Skip to content
Snippets Groups Projects
Commit 9d47143d authored by Louis-Francis Ratté-Boulianne's avatar Louis-Francis Ratté-Boulianne Committed by Sjoerd Simons
Browse files

Add support for project in info command


Signed-off-by: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>

Differential Revision: https://phabricator.apertis.org/D5245
parent 32b0e35f
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,7 @@ ade-info \- Print information about an entity ...@@ -13,6 +13,7 @@ ade-info \- Print information about an entity
.sp .sp
.nf .nf
\fIade info\fR --device [<user>[:<pass>]@]<hostname>[:<port>] \fIade info\fR --device [<user>[:<pass>]@]<hostname>[:<port>]
\fIade info\fR --project
\fIade info\fR --sdk \fIade info\fR --sdk
\fIade info\fR --sysroot <sysroot> \fIade info\fR --sysroot <sysroot>
.fi .fi
...@@ -30,6 +31,13 @@ Return image version of given device (e.g. user@apertis)\&. ...@@ -30,6 +31,13 @@ Return image version of given device (e.g. user@apertis)\&.
.sp .sp
.RE .RE
.PP .PP
\fI\-\-project\fR
.RS 4
Return information about project in current directory (name, version
and bundle\-id)\&.
.sp
.RE
.PP
\fI\-\-sdk\fR \fI\-\-sdk\fR
.RS 4 .RS 4
Return SDK version\&. Return SDK version\&.
......
...@@ -585,6 +585,8 @@ class Project: ...@@ -585,6 +585,8 @@ class Project:
def __init__(self, path=None, bundle_id=None): def __init__(self, path=None, bundle_id=None):
self.bundle_id = None self.bundle_id = None
self.name = None
self.version = None
if not path: if not path:
path = os.getcwd() path = os.getcwd()
...@@ -600,6 +602,8 @@ class Project: ...@@ -600,6 +602,8 @@ class Project:
def check_validity(self): def check_validity(self):
if not self.bundle_id: if not self.bundle_id:
raise InvalidProjectError("Property 'BundleId' is not specified") raise InvalidProjectError("Property 'BundleId' is not specified")
if not self.version:
raise InvalidProjectError("Property 'Version' is not specified")
def find_root(self, path): def find_root(self, path):
p = pathlib.Path(path) p = pathlib.Path(path)
...@@ -619,6 +623,8 @@ class Project: ...@@ -619,6 +623,8 @@ class Project:
with open(path) as f: with open(path) as f:
info = json.load(f) info = json.load(f)
self.bundle_id = info['BundleId'] self.bundle_id = info['BundleId']
self.name = info['Name']
self.version = info['App_Version']
except: except:
pass pass
...@@ -718,6 +724,7 @@ class Ade: ...@@ -718,6 +724,7 @@ class Ade:
self.simulator = False self.simulator = False
self.sysroot = None self.sysroot = None
self.device = None self.device = None
self.project = False
self.bundle_id = None self.bundle_id = None
...@@ -803,6 +810,11 @@ class Ade: ...@@ -803,6 +810,11 @@ class Ade:
self.target.load_sysroot_version() self.target.load_sysroot_version()
except InvalidDeviceError as e: except InvalidDeviceError as e:
self.die("Invalid device: {0}".format(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: else:
self.die("No target (simulator, sysroot or device) specified") self.die("No target (simulator, sysroot or device) specified")
...@@ -1012,6 +1024,14 @@ class Ade: ...@@ -1012,6 +1024,14 @@ class Ade:
.format(Colors.WARNING, self.target.version, Colors.ENDC)) .format(Colors.WARNING, self.target.version, Colors.ENDC))
if self.format == 'parseable': if self.format == 'parseable':
print("ImageVersion:{0}".format(self.target.version.get_tag())) 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): def do_configure(self):
target = self.get_target() target = self.get_target()
...@@ -1031,7 +1051,7 @@ class Ade: ...@@ -1031,7 +1051,7 @@ class Ade:
.format(Colors.OKBLUE, version.get_name(), Colors.ENDC)) .format(Colors.OKBLUE, version.get_name(), Colors.ENDC))
try: 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) project.configure(sysroot, debug=self.debug, force=self.force, args=self.args)
except Exception as e: except Exception as e:
self.die("Couldn't configure project: {0}".format(e)) self.die("Couldn't configure project: {0}".format(e))
...@@ -1077,6 +1097,7 @@ if __name__ == '__main__': ...@@ -1077,6 +1097,7 @@ if __name__ == '__main__':
group.add_argument('--sdk', help="Use SDK as target", action='store_true') 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('--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('--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
sysroot_parser = subparsers.add_parser('sysroot', help='Sysroot related commands') sysroot_parser = subparsers.add_parser('sysroot', help='Sysroot related commands')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment