aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/wrap/wrap.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/wrap/wrap.py')
-rw-r--r--mesonbuild/wrap/wrap.py93
1 files changed, 21 insertions, 72 deletions
diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py
index a0eeed1..0171429 100644
--- a/mesonbuild/wrap/wrap.py
+++ b/mesonbuild/wrap/wrap.py
@@ -20,7 +20,6 @@ import sys
import configparser
from pathlib import Path
from . import WrapMode
-from ..mesonlib import Popen_safe
try:
import ssl
@@ -204,86 +203,36 @@ class Resolver:
def get_git(self, p):
checkoutdir = os.path.join(self.subdir_root, p.get('directory'))
revno = p.get('revision')
- is_there = os.path.isdir(checkoutdir)
- if is_there:
- try:
- subprocess.check_call(['git', 'rev-parse'], cwd=checkoutdir)
- except subprocess.CalledProcessError:
- raise RuntimeError('%s is not empty but is not a valid '
- 'git repository, we can not work with it'
- ' as a subproject directory.' % (
- checkoutdir))
-
- if revno.lower() == 'head':
- # Failure to do pull is not a fatal error,
- # because otherwise you can't develop without
- # a working net connection.
- subprocess.call(['git', 'pull'], cwd=checkoutdir)
- else:
- if subprocess.call(['git', 'checkout', revno], cwd=checkoutdir) != 0:
- subprocess.check_call(['git', 'fetch', p.get('url'), revno], cwd=checkoutdir)
- subprocess.check_call(['git', 'checkout', revno],
- cwd=checkoutdir)
+ if p.values.get('clone-recursive', '').lower() == 'true':
+ subprocess.check_call(['git', 'clone', '--recursive', p.get('url'),
+ p.get('directory')], cwd=self.subdir_root)
else:
- if p.values.get('clone-recursive', '').lower() == 'true':
- subprocess.check_call(['git', 'clone', '--recursive', p.get('url'),
- p.get('directory')], cwd=self.subdir_root)
- else:
- subprocess.check_call(['git', 'clone', p.get('url'),
- p.get('directory')], cwd=self.subdir_root)
- if revno.lower() != 'head':
- if subprocess.call(['git', 'checkout', revno], cwd=checkoutdir) != 0:
- subprocess.check_call(['git', 'fetch', p.get('url'), revno], cwd=checkoutdir)
- subprocess.check_call(['git', 'checkout', revno],
- cwd=checkoutdir)
- push_url = p.values.get('push-url')
- if push_url:
- subprocess.check_call(['git', 'remote', 'set-url',
- '--push', 'origin', push_url],
+ subprocess.check_call(['git', 'clone', p.get('url'),
+ p.get('directory')], cwd=self.subdir_root)
+ if revno.lower() != 'head':
+ if subprocess.call(['git', 'checkout', revno], cwd=checkoutdir) != 0:
+ subprocess.check_call(['git', 'fetch', p.get('url'), revno], cwd=checkoutdir)
+ subprocess.check_call(['git', 'checkout', revno],
cwd=checkoutdir)
+ push_url = p.values.get('push-url')
+ if push_url:
+ subprocess.check_call(['git', 'remote', 'set-url',
+ '--push', 'origin', push_url],
+ cwd=checkoutdir)
def get_hg(self, p):
checkoutdir = os.path.join(self.subdir_root, p.get('directory'))
revno = p.get('revision')
- is_there = os.path.isdir(checkoutdir)
- if is_there:
- if revno.lower() == 'tip':
- # Failure to do pull is not a fatal error,
- # because otherwise you can't develop without
- # a working net connection.
- subprocess.call(['hg', 'pull'], cwd=checkoutdir)
- else:
- if subprocess.call(['hg', 'checkout', revno], cwd=checkoutdir) != 0:
- subprocess.check_call(['hg', 'pull'], cwd=checkoutdir)
- subprocess.check_call(['hg', 'checkout', revno],
- cwd=checkoutdir)
- else:
- subprocess.check_call(['hg', 'clone', p.get('url'),
- p.get('directory')], cwd=self.subdir_root)
- if revno.lower() != 'tip':
- subprocess.check_call(['hg', 'checkout', revno],
- cwd=checkoutdir)
+ subprocess.check_call(['hg', 'clone', p.get('url'),
+ p.get('directory')], cwd=self.subdir_root)
+ if revno.lower() != 'tip':
+ subprocess.check_call(['hg', 'checkout', revno],
+ cwd=checkoutdir)
def get_svn(self, p):
- checkoutdir = os.path.join(self.subdir_root, p.get('directory'))
revno = p.get('revision')
- is_there = os.path.isdir(checkoutdir)
- if is_there:
- p, out = Popen_safe(['svn', 'info', '--show-item', 'revision', checkoutdir])
- current_revno = out
- if current_revno == revno:
- return
-
- if revno.lower() == 'head':
- # Failure to do pull is not a fatal error,
- # because otherwise you can't develop without
- # a working net connection.
- subprocess.call(['svn', 'update'], cwd=checkoutdir)
- else:
- subprocess.check_call(['svn', 'update', '-r', revno], cwd=checkoutdir)
- else:
- subprocess.check_call(['svn', 'checkout', '-r', revno, p.get('url'),
- p.get('directory')], cwd=self.subdir_root)
+ subprocess.check_call(['svn', 'checkout', '-r', revno, p.get('url'),
+ p.get('directory')], cwd=self.subdir_root)
def get_data(self, url):
blocksize = 10 * 1024