From 804222feb93f4d11e6d240528e909757fbe29338 Mon Sep 17 00:00:00 2001 From: Zhang Qiang Date: Wed, 27 Jun 2012 16:36:07 +0800 Subject: [PATCH] only check repos and build conf if no --noinit specified This feature is needed to compatible with previous gbs version. With --noinit option specified, gbs dont' need prepare build root, which should be already there. That means gbs don't need spend time to parse repos and download build conf, and just go into build root execute rpmbuild. --- gitbuildsys/cmd_build.py | 58 +++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/gitbuildsys/cmd_build.py b/gitbuildsys/cmd_build.py index f1b4f2b..a698005 100644 --- a/gitbuildsys/cmd_build.py +++ b/gitbuildsys/cmd_build.py @@ -320,36 +320,38 @@ def do(opts, args): else: msger.error('No package repository specified.') - cachedir = os.path.join(configmgr.get('tmpdir'), 'gbscache') - if not os.path.exists(cachedir): - os.makedirs(cachedir) - msger.info('generate repositories ...') - repoparser = utils.RepoParser(repos, cachedir) - repourls = repoparser.get_repos_by_arch(buildarch) - if not repourls: - msger.error('no repositories found for arch: %s under the following '\ - 'repos:\n %s' % (buildarch, '\n'.join(repos.keys()))) - for url in repourls: - cmd += ['--repository=%s' % url] - - if opts.dist: - distconf = opts.dist - else: - distconf = repoparser.buildconf - if distconf is None: - msger.info('failed to get build conf, use default build conf') - distconf = configmgr.get('distconf', 'build') - else: - msger.info('build conf has been downloaded at:\n %s\n '\ - 'you can save it and use -D to specify it, which can '\ - 'prevent downloading it everytime ' % distconf) - - if distconf is None: - msger.error('No build config file specified, please specify in '\ - '~/.gbs.conf or command line using -D') - cmd += ['--dist=%s' % distconf] if opts.noinit: cmd += ['--no-init'] + else: + # check & prepare repos and build conf if no noinit option + cachedir = os.path.join(configmgr.get('tmpdir'), 'gbscache') + if not os.path.exists(cachedir): + os.makedirs(cachedir) + msger.info('generate repositories ...') + repoparser = utils.RepoParser(repos, cachedir) + repourls = repoparser.get_repos_by_arch(buildarch) + if not repourls: + msger.error('no repositories found for arch: %s under the ' \ + 'following repos:\n %s' % (buildarch, \ + '\n'.join(repos.keys()))) + for url in repourls: + cmd += ['--repository=%s' % url] + + if opts.dist: + distconf = opts.dist + else: + distconf = repoparser.buildconf + if distconf is None: + msger.info('failed to get build conf, use default build conf') + distconf = configmgr.get('distconf', 'build') + else: + msger.info('build conf has been downloaded at:\n %s' + % distconf) + if distconf is None: + msger.error('No build config file specified, please specify in '\ + '~/.gbs.conf or command line using -D') + cmd += ['--dist=%s' % distconf] + if opts.ccache: cmd += ['--ccache'] cmd += [specfile] -- 2.7.4