diff options
Diffstat (limited to 'python/servo/command_base.py')
-rw-r--r-- | python/servo/command_base.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 185b716165d..80811e30a04 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -121,6 +121,44 @@ class CommandBase(object): self._cargo_build_id = open(filename).read().strip() return self._cargo_build_id + def get_binary_path(self, release, dev): + base_path = path.join("components", "servo", "target") + release_path = path.join(base_path, "release", "servo") + dev_path = path.join(base_path, "debug", "servo") + + # Prefer release if both given + if release and dev: + dev = False + + release_exists = path.exists(release_path) + dev_exists = path.exists(dev_path) + + if not release_exists and not dev_exists: + print("No Servo binary found. Please run './mach build' and try again.") + sys.exit() + + if release and release_exists: + return release_path + + if dev and dev_exists: + return dev_path + + if not dev and not release and release_exists and dev_exists: + print("You have multiple profiles built. Please specify which " + "one to run with '--release' or '--dev'.") + sys.exit() + + if not dev and not release: + if release_exists: + return release_path + else: + return dev_path + + print("The %s profile is not built. Please run './mach build%s' " + "and try again." % ("release" if release else "dev", + " --release" if release else "")) + sys.exit() + def build_env(self, gonk=False, hosts_file_path=None): """Return an extended environment dictionary.""" env = os.environ.copy() |