Commit 191d81d5 authored by Paweł Szostek's avatar Paweł Szostek

git backend: towards portability...

parent 6baf6f8a
...@@ -45,21 +45,29 @@ class Git(object): ...@@ -45,21 +45,29 @@ class Git(object):
@staticmethod @staticmethod
def get_git_submodules(module): def get_git_submodules(module):
submodule_dir = path.rel2abs(module.path) submodule_dir = path.rel2abs(module.path)
logging.info("Checking git submodules in %s" % submodule_dir) logging.debug("Checking git submodules in %s" % submodule_dir)
cmd = "(cd %s && git config --list | grep submodule | sed 's/.*=//')" % submodule_dir curdir = os.getcwd()
config_submodules = Popen(cmd, os.chdir(submodule_dir)
#"git config --list" | grep submodule | sed 's/.*=//')" % submodule_dir
config_content = Popen("git config --list",
stdout=PIPE, stdout=PIPE,
stdin=PIPE, stdin=PIPE,
shell=True) shell=True)
config_submodules = [line.strip() for line in config_submodules.stdout.readlines()] config_lines = [line.strip() for line in config_content.stdout.readlines()]
cmd = "(cd %s && cat ./.gitmodules | grep url | sed 's/url = //')" % submodule_dir config_submodule_lines = [line for line in config_lines if "submodule" in line]
dotgitmodules_submodules = Popen(cmd, config_submodules = [line.split("=")[-1] for line in config_submodule_lines]
stdout=PIPE,
stdin=PIPE, #"(cd %s && cat ./.gitmodules 2>/dev/null | grep url | sed 's/url = //')" % submodule_dir
shell=True) dotgitmodules_file = open(".gitmodules", 'r')
dotgitmodules_submodules = [line.strip() for line in dotgitmodules_submodules.stdout.readlines()] dotgitmodules_lines = dotgitmodules_file.readlines()
url_lines = [line for line in dotgitmodules_lines if 'url' in line]
dotgitmodules_submodules = [line.split(" = ")[-1].strip() for line in url_lines]
set(config_submodules).update(set(dotgitmodules_submodules)) set(config_submodules).update(set(dotgitmodules_submodules))
submodules = list(config_submodules) submodules = list(config_submodules)
if len(submodules) > 0:
logging.info("Found git submodules in %s" % module.path)
return submodules return submodules
def fetch(self, module): def fetch(self, module):
......
...@@ -24,6 +24,7 @@ from __future__ import print_function ...@@ -24,6 +24,7 @@ from __future__ import print_function
import os import os
import logging import logging
import global_mod import global_mod
import sys
import new_dep_solver as dep_solver import new_dep_solver as dep_solver
from util import path as path_mod from util import path as path_mod
from fetch import BackendFactory from fetch import BackendFactory
...@@ -141,7 +142,10 @@ class ModulePool(list): ...@@ -141,7 +142,10 @@ class ModulePool(list):
bf = BackendFactory() bf = BackendFactory()
fetcher = bf.get_backend(module) fetcher = bf.get_backend(module)
fetcher.fetch(module) result = fetcher.fetch(module)
if result is False:
logging.error("Unable to fetch module %s" % module.url)
sys.exit("Exiting")
module.parse_manifest() module.parse_manifest()
module.process_manifest() module.process_manifest()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment