# Path: makeapp/exceptions.py
# class ProjectorExeption(MakeappException):
#     """Basic Projector related exception."""
# 
# class CommandError(MakeappException):
#     """Raised when projector detects external process invocation error."""
# 
# Path: makeapp/utils.py
# def run_command(command: str, *, err_msg: str = '') -> List[str]:
#     """Runs a command in a shell process.
# 
#     Returns a list of strings gathered from a command.
# 
#     :param command:
# 
#     :param err_msg: Message to show on error.
# 
#     :raises: CommandError
# 
#     """
#     prc = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True, universal_newlines=True)
# 
#     LOG.debug(f'Run command: `{command}` ...')
# 
#     data = []
# 
#     out, _ = prc.communicate()
# 
#     if isinstance(out, bytes):
#         out = out.decode('utf-8')
# 
#     has_error = prc.returncode
# 
#     for item in out.splitlines():
#         item = item.strip()
# 
#         if not item:
#             continue
# 
#         data.append(item)
# 
#     if has_error:
#         raise CommandError(err_msg or f"Command `{command}` failed: %s" % '\n'.join(data))
# 
#     return data


import os
from tempfile import NamedTemporaryFile
from typing import Optional, List, Union
from ..exceptions import ProjectorExeption, CommandError
from ..utils import run_command
                break

        return helper

    def run_command(self, command):
        """Basic command runner to implement."""
        return run_command(f'{self.COMMAND} {command}')

    def init(self):
        """Initializes a repository."""
        return self.run_command('init -q')

    def get_modified(self) -> List[str]:
        """Returns modified filepaths."""

        lines = self.run_command('status -s')
        modified = []

        for line in lines:
            marker, filepath = line.split(' ', 1)
            if 'M' in marker:
                modified.append(filepath)

        return modified

    def check(self):
        """Performs basic vcs check."""
        data = self.run_command('branch')

        if f'* {self.MASTER}' not in ''.join(data):

# Path: makeapp/exceptions.py
# class ProjectorExeption(MakeappException):
#     """Basic Projector related exception."""
# 
# class CommandError(MakeappException):
#     """Raised when projector detects external process invocation error."""
# 
# Path: makeapp/utils.py
# def run_command(command: str, *, err_msg: str = '') -> List[str]:
#     """Runs a command in a shell process.
# 
#     Returns a list of strings gathered from a command.
# 
#     :param command:
# 
#     :param err_msg: Message to show on error.
# 
#     :raises: CommandError
# 
#     """
#     prc = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True, universal_newlines=True)
# 
#     LOG.debug(f'Run command: `{command}` ...')
# 
#     data = []
# 
#     out, _ = prc.communicate()
# 
#     if isinstance(out, bytes):
#         out = out.decode('utf-8')
# 
#     has_error = prc.returncode
# 
#     for item in out.splitlines():
#         item = item.strip()
# 
#         if not item:
#             continue
# 
#         data.append(item)
# 
#     if has_error:
#         raise CommandError(err_msg or f"Command `{command}` failed: %s" % '\n'.join(data))
# 
#     return data


# Path: makeapp/helpers/vcs.py
import os
from tempfile import NamedTemporaryFile
from typing import Optional, List, Union
from ..exceptions import ProjectorExeption, CommandError
from ..utils import run_command

                break

        return helper

    def run_command(self, command):
        """Basic command runner to implement."""
        return run_command(f'{self.COMMAND} {command}')

    def init(self):
        """Initializes a repository."""
        return self.run_command('init -q')

    def get_modified(self) -> List[str]:
        """Returns modified filepaths."""

        lines = self.run_command('status -s')
        modified = []

        for line in lines:
            marker, filepath = line.split(' ', 1)
            if 'M' in marker:
                modified.append(filepath)

        return modified

    def check(self):
        """Performs basic vcs check."""
        data = self.run_command('branch')

        if f'* {self.MASTER}' not in ''.join(data):

            raise ProjectorExeption(