Example #1
0
    def shell(self, *args, **kwargs):
        exceptions = kwargs.pop('exceptions', False)
        join = kwargs.pop('join', False)

        if kwargs:
            raise Exception('Unsupported kwargs provided to function.')

        log.debug(' '.join(args))

        if join:
            process = subprocess.Popen(args, cwd=self.path)
            process.communicate()
        else:
            process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self.path)
            stdout, stderr = process.communicate()
            process.stdout = stdout and force_unicode(stdout.strip()) or u''
            process.stderr = stderr and force_unicode(stderr.strip()) or u''
            process.split = filter(lambda x: x, map(lambda x: x.strip(), process.stdout.split(u'\n')))

            if process.returncode != 0:
                message = '%s: %s: %s' % (process.returncode, process.stderr, process.stdout)
                log.debug(message)
                if exceptions:
                    raise Exception(message)

            return process
Example #2
0
    def shell(self, *args, **kwargs):
        exceptions = kwargs.pop("exceptions", False)
        join = kwargs.pop("join", False)

        if kwargs:
            raise Exception("Unsupported kwargs provided to function.")

        log.debug(" ".join(args))

        if join:
            process = subprocess.Popen(args, cwd=self.path)
            process.communicate()
        else:
            process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self.path)
            stdout, stderr = process.communicate()
            process.stdout = stdout and force_unicode(stdout.strip()) or u""
            process.stderr = stderr and force_unicode(stderr.strip()) or u""
            process.split = filter(lambda x: x, map(lambda x: x.strip(), process.stdout.split(u"\n")))

            if process.returncode != 0:
                message = "%s: %s: %s" % (process.returncode, process.stderr, process.stdout)
                log.debug(message)
                if exceptions:
                    raise Exception(message)

            return process
Example #3
0
    def git(self, *args, **kwargs):
        split = kwargs.pop('split', False)
        join = kwargs.pop('join', False)

        command = ['git'] + list(args)

        log.debug(' '.join(command))

        if join:
            p = subprocess.Popen(command)
            p.communicate()
        else:
            p = subprocess.Popen(command, stdout=subprocess.PIPE)
            (stdout, stderr) = p.communicate(None)
            stdout = force_unicode(stdout)
            stderr = force_unicode(stderr)
            if split:
                stdout = filter(lambda x: x, map(lambda x: x.strip(), stdout.split(u'\n')))
            return stdout