Remove unused parameter.
[chromium-blink-merge.git] / mojo / tools / mopy / paths.py
blob49e1c50388746061916fd36879987bb0f8055379
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import os
7 from .config import Config
8 from .gn import BuildDirectoryForConfig
10 class Paths(object):
11 """Provides commonly used paths"""
13 def __init__(self, config=None, build_dir=None):
14 """Specify either a config or a build_dir to generate paths to binary
15 artifacts."""
16 self.src_root = os.path.abspath(os.path.join(__file__,
17 os.pardir, os.pardir, os.pardir, os.pardir))
18 self.mojo_dir = os.path.join(self.src_root, "mojo")
20 if config:
21 self.build_dir = BuildDirectoryForConfig(config, self.src_root)
22 elif build_dir is not None:
23 self.build_dir = os.path.abspath(build_dir)
24 else:
25 self.build_dir = None
27 if self.build_dir is not None:
28 self.mojo_launcher_path = os.path.join(self.build_dir, "mojo_launcher")
29 self.mojo_shell_path = os.path.join(self.build_dir, "mojo_shell")
30 # TODO(vtl): Use the host OS here, since |config| may not be available.
31 # In any case, if the target is Windows, but the host isn't, using
32 # |os.path| isn't correct....
33 if Config.GetHostOS() == Config.OS_WINDOWS:
34 self.mojo_launcher_path += ".exe"
35 self.mojo_shell_path += ".exe"
36 if config and config.target_os == Config.OS_ANDROID:
37 self.target_mojo_shell_path = os.path.join(self.build_dir,
38 "apks",
39 "MojoShell.apk")
40 else:
41 self.target_mojo_shell_path = self.mojo_shell_path
42 else:
43 self.mojo_launcher_path = None
44 self.mojo_shell_path = None
45 self.target_mojo_shell_path = None
47 def RelPath(self, path):
48 """Returns the given path, relative to the current directory."""
49 return os.path.relpath(path)
51 def SrcRelPath(self, path):
52 """Returns the given path, relative to self.src_root."""
53 return os.path.relpath(path, self.src_root)
55 def FileFromUrl(self, url):
56 """Given an app URL (<scheme>:<appname>), return 'build_dir/appname.mojo'.
57 If self.build_dir is None, just return appname.mojo
58 """
59 (_, name) = url.split(':')
60 if self.build_dir:
61 return os.path.join(self.build_dir, name + '.mojo')
62 return name + '.mojo'
64 @staticmethod
65 def IsValidAppUrl(url):
66 """Returns False if url is malformed, True otherwise."""
67 try:
68 return len(url.split(':')) == 2
69 except ValueError:
70 return False