Example #1
0
    def fmt(self, alias):

        if not self._exists(alias):
            raise exceptions.AliasNotFoundException(alias=alias)

        state = self._load_state()

        return state['files'][alias]['fmt']
Example #2
0
    def remove(self, alias):

        if not self._exists(alias):
            raise exceptions.AliasNotFoundException(alias=alias)

        state = self._load_state()
        del state['files'][alias]

        self._save_state(state)

        alias_dir = os.path.join(self._repo_dir, alias)
        self._logger.debug('Deleting directory: {0}'.format(alias_dir))
        shutil.rmtree(alias_dir)
Example #3
0
    def message(self, alias, version):

        if not self._exists(alias):
            raise exceptions.AliasNotFoundException(alias=alias)

        version = self._convert_version(alias, version)

        file_path = os.path.join(self._repo_dir, alias, str(version),
                                 'commit-message')

        if not os.path.exists(file_path):
            raise exceptions.VersionNotFoundException(alias=alias,
                                                      version=version)

        with open(file_path) as f:
            self._logger.debug(
                'Returning contents of file {0}'.format(file_path))
            return f.read()
Example #4
0
    def revisions(self, alias):

        if not self._exists(alias):
            raise exceptions.AliasNotFoundException(alias=alias)

        revisions = []

        for version in utils.lsd(os.path.join(self._repo_dir, alias)):
            self._logger.debug('Found revision {0} for alias {1}'.format(
                version, alias))
            timestamp = os.path.getmtime(
                os.path.join(self._repo_dir, alias, version))
            revisions.append(
                Revision(alias=alias,
                         file_path=self.path(alias),
                         timestamp=timestamp,
                         version=int(version),
                         commit_message=self.message(alias, version)))

        return revisions
Example #5
0
    def commit(self, alias, message=None):

        if not self._exists(alias):
            raise exceptions.AliasNotFoundException(alias=alias)

        utils.smkdir(os.path.join(self._repo_dir, alias))

        version = self._find_current_version(alias) + 1

        src = self.path(alias)
        revision_dir = os.path.join(self._repo_dir, alias, str(version))
        utils.smkdir(revision_dir)
        dst = os.path.join(revision_dir, 'contents')

        self._logger.debug('Copying {0} --> {1}'.format(src, dst))
        shutil.copy(src=src, dst=dst)

        commit_message_file = os.path.join(revision_dir, 'commit-message')

        self._logger.debug(
            'Creating a commit message file: {0}'.format(commit_message_file))
        with open(commit_message_file, 'w') as stream:
            stream.write(message or '')