Exemple #1
0
    def run(self):
        sorted_pkgs = dag_run(self.__dag)

        software_root = self.__config_version.config['software_root']
        release_version = self.__config_version.config['version']

        env = Env()
        env.clean()
        env.set_release(software_root, release_version)

        global_env = self.__config_release.get('setting',
                                               {}).get('global_env', {})
        new_global_env = {}
        for k, v in global_env.items():
            new_global_env[k] = v.format(**self.__config_version.config)
        env.set_global(new_global_env)

        path_usage = self.__config_release.get('setting',
                                               {}).get('path_usage', {})
        for pkg in sorted_pkgs:
            pkg_info = self.__pkg_mgr.package_info(pkg)
            env.set_package(path_usage, pkg_info)

        env_change = env.env_change()

        _logger.info('From software root: {0}'.format(software_root))
        _logger.info('Using version: {0}'.format(release_version))
        _logger.info('Current platform: {0}'.format(
            self.__config_version.config['platform']))

        return env_change
Exemple #2
0
    def execute(self, config, shell):
        shell.clear_script()

        shell.define_cepcenv()
        shell.newline()

        try:
            info = Info()
            default_version = info.default_version
            if default_version:
                config_version = ConfigVersion(config, default_version)
                config_release = ConfigRelease(config_version)

                obj = CepcenvUse(config, config_version, config_release)
                set_env, unset_env = obj.run()
            else:
                env = Env()
                env.clean()
                set_env, unset_env = env.env_change()

            for e in unset_env:
                shell.unset_env(e)
            for k, v in set_env.items():
                shell.set_env(k, v)
        except Exception as e:
            _logger.warn('Cat not load default version: {0}'.format(e))

        click.echo(shell.script, nl=False)
Exemple #3
0
    def execute(self, config, config_version, shell):
        local_versions = []

        try:
            version_dirs = os.listdir(config_version.cepcenv_dir)
            version_dirs.sort()
            for version_dir in version_dirs:
                try:
                    with open(os.path.join(config_version.cepcenv_dir, version_dir, 'def', 'config', 'version.yml')) as f:
                        version_in_def = f.read().strip()

                    local_versions.append(version_dir)

                    if version_in_def != version_dir:
                        _logger.warn('Version inconsistent for "{0}": Defined as "{1}"'.format(version_dir, version_in_def))
                except:
                    continue
        except:
            pass


        env = Env()
        current_root = env.release_root
        current_version = env.release_version

        info = Info()
        default_version_name = info.default_version
        _logger.debug('Default version name: {0}'.format(default_version_name))

        default_root = None
        default_version = None
        if default_version_name:
            config_version_default = ConfigVersion(config, default_version_name)
            default_root = config_version_default.get('release_root')
            default_version = config_version_default.get('version')

        _logger.debug('Current release: {0} {1}'.format(current_root, current_version))
        _logger.debug('Default release: {0} {1}'.format(default_root, default_version))


        script = ''

        release_root = config_version.get('release_root')
        script += shell.echo('(Release root: "{0}")'.format(release_root))

        for version in local_versions:
            ver_status = []
            if release_root == current_root and version == current_version:
                ver_status.append('current')
            if release_root == default_root and version == default_version:
                ver_status.append('default')

            version_line = version
            if ver_status:
                version_line += '  ({0})'.format(', '.join(ver_status))

            script += shell.echo(version_line)

        click.echo(script, nl=False)
Exemple #4
0
    def __init__(self, config, config_version, config_release):
        self.__config = config
        self.__config_version = config_version
        self.__config_release = config_release

        self.__env = Env()
        self.__env.clean()

        self.__pkg_mgr = PackageManager(config_version, config_release)
Exemple #5
0
    def execute(self, config, config_version, shell):
        script = ''

        env = Env()

        for name, info in env.package_info.items():
            script += shell.echo(
                '{name} @ {version} : {category} - {path}'.format(name=name,
                                                                  **info))

        click.echo(script, nl=False)
Exemple #6
0
    def execute(self, config, config_version, shell):
        env = Env()
        env.clean()
        setenv, unset = env.final_all_env()

        script = ''
        for e in unset:
            script += shell.unset_env(e)
        for k, v in setenv.items():
            script += shell.set_env(k, v)

        click.echo(script, nl=False)
Exemple #7
0
    def execute(self, config, config_version, shell):
        env = Env()
        env.clean()
        set_env, unset_env = env.env_change()

        shell.clear_script()
        for e in unset_env:
            shell.unset_env(e)
        for k, v in set_env.items():
            shell.set_env(k, v)

        click.echo(shell.script, nl=False)
Exemple #8
0
    def execute(self, config, shell):
        shell.clear_script()

        env = Env()
        env.clean()
        set_env, unset = env.env_change()

        for e in unset:
            shell.unset_env(e)
        for k, v in set_env.items():
            shell.set_env(k, v)

        shell.undefine_cepcenv()

        click.echo(shell.script, nl=False)
Exemple #9
0
    def run(self):
        sorted_pkgs = dag_run(self.__dag)

        env = Env()
        env.clean()
        env.set_release(self.__config_version.config['release_root'], self.__config_version.config['version'])

        for pkg in sorted_pkgs:
            if pkg not in self.__config_release.config['attribute']:
                continue

            path_mode = self.__config_release.config['main'].get('path_mode', {})
            pkg_config = {
                'name': pkg,
                'package': self.__config_release.config['package'].get(pkg, {}),
                'attribute': self.__config_release.config['attribute'].get(pkg, {}),
                'format': self.__exe_config[pkg],
            }
            env.set_package(path_mode, pkg_config)

        return env.final_all_env()
Exemple #10
0
    def execute(self, config, config_version):
        env = Env()

        for name, info in env.package_info.items():
            click.echo('{name} @ {version} : {category} - {path}'.format(
                name=name, **info))