diff options
Diffstat (limited to 'bitbake/lib/bblayers/layerindex.py')
| -rw-r--r-- | bitbake/lib/bblayers/layerindex.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/bitbake/lib/bblayers/layerindex.py b/bitbake/lib/bblayers/layerindex.py index aa3b682d16..95b67a6621 100644 --- a/bitbake/lib/bblayers/layerindex.py +++ b/bitbake/lib/bblayers/layerindex.py | |||
| @@ -24,7 +24,7 @@ class LayerIndexPlugin(ActionPlugin): | |||
| 24 | This class inherits ActionPlugin to get do_add_layer. | 24 | This class inherits ActionPlugin to get do_add_layer. |
| 25 | """ | 25 | """ |
| 26 | 26 | ||
| 27 | def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer, branch): | 27 | def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer, branch, shallow=False): |
| 28 | layername = self.get_layer_name(url) | 28 | layername = self.get_layer_name(url) |
| 29 | if os.path.splitext(layername)[1] == '.git': | 29 | if os.path.splitext(layername)[1] == '.git': |
| 30 | layername = os.path.splitext(layername)[0] | 30 | layername = os.path.splitext(layername)[0] |
| @@ -32,10 +32,12 @@ class LayerIndexPlugin(ActionPlugin): | |||
| 32 | layerdir = os.path.join(repodir, subdir) | 32 | layerdir = os.path.join(repodir, subdir) |
| 33 | if not os.path.exists(repodir): | 33 | if not os.path.exists(repodir): |
| 34 | if fetch_layer: | 34 | if fetch_layer: |
| 35 | cmd = ['git', 'clone', '-b' , branch, url, repodir] | 35 | cmd = ['git', 'clone'] |
| 36 | if not branch: | 36 | if shallow: |
| 37 | # Branch really shouldn't be empty, but use the repo default if it is | 37 | cmd.extend(['--depth', '1']) |
| 38 | cmd = ['git', 'clone', url, repodir] | 38 | if branch: |
| 39 | cmd.extend(['-b' , branch]) | ||
| 40 | cmd.extend([url, repodir]) | ||
| 39 | result = subprocess.call(cmd) | 41 | result = subprocess.call(cmd) |
| 40 | if result: | 42 | if result: |
| 41 | logger.error("Failed to download %s (%s)" % (url, branch)) | 43 | logger.error("Failed to download %s (%s)" % (url, branch)) |
| @@ -176,7 +178,8 @@ class LayerIndexPlugin(ActionPlugin): | |||
| 176 | layerBranch.layer.vcs_url, | 178 | layerBranch.layer.vcs_url, |
| 177 | layerBranch.vcs_subdir, | 179 | layerBranch.vcs_subdir, |
| 178 | not args.show_only, | 180 | not args.show_only, |
| 179 | layerBranch.actual_branch) | 181 | layerBranch.actual_branch, |
| 182 | args.shallow) | ||
| 180 | if not name: | 183 | if not name: |
| 181 | # Error already shown | 184 | # Error already shown |
| 182 | return 1 | 185 | return 1 |
| @@ -209,6 +212,7 @@ class LayerIndexPlugin(ActionPlugin): | |||
| 209 | parser_layerindex_fetch = self.add_command(sp, 'layerindex-fetch', self.do_layerindex_fetch, parserecipes=False) | 212 | parser_layerindex_fetch = self.add_command(sp, 'layerindex-fetch', self.do_layerindex_fetch, parserecipes=False) |
| 210 | parser_layerindex_fetch.add_argument('-n', '--show-only', help='show dependencies and do nothing else', action='store_true') | 213 | parser_layerindex_fetch.add_argument('-n', '--show-only', help='show dependencies and do nothing else', action='store_true') |
| 211 | parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch') | 214 | parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch') |
| 215 | parser_layerindex_fetch.add_argument('-s', '--shallow', help='do only shallow clones (--depth=1)', action='store_true') | ||
| 212 | parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER') | 216 | parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER') |
| 213 | parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch') | 217 | parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch') |
| 214 | 218 | ||
