Beispiel #1
0
def cli(ctx, list, verbose, exe):
    """Apio configuration."""

    if list:  # pragma: no cover
        profile = Profile()
        profile.list()
    elif verbose:  # pragma: no cover
        profile = Profile()
        profile.add_config('verbose', verbose)
    elif exe:  # pragma: no cover
        profile = Profile()
        profile.add_config('exe', exe)
    else:
        click.secho(ctx.get_help())
Beispiel #2
0
    def _setup_windows(self):
        profile = Profile()
        resources = Resources()

        self.name = 'drivers'
        self.version = util.get_package_version(self.name, profile)
        self.spec_version = util.get_package_spec_version(self.name, resources)
Beispiel #3
0
    def __init__(self):
        profile = Profile()
        resources = Resources()

        self.name = 'examples'
        self.examples_dir = util.get_package_dir(self.name)
        self.version = util.get_package_version(self.name, profile)
        self.spec_version = util.get_package_spec_version(self.name, resources)
Beispiel #4
0
    def __init__(self, project_dir=''):
        self.profile = Profile()
        self.resources = Resources()

        if project_dir is not None:
            # Move to project dir
            project_dir = util.check_dir(project_dir)
            os.chdir(project_dir)
Beispiel #5
0
 def disable(self):
     if 'linux' in platform:
         return self._disable_linux()
     elif 'darwin' in platform:
         self.profile = Profile()
         return self._disable_darwin()
     elif 'windows' in platform:
         return self._disable_windows()
Beispiel #6
0
    def __init__(self):
        profile = Profile()
        resources = Resources()

        self.name = 'system'
        self.version = util.get_package_version(self.name, profile)
        self.spec_version = util.get_package_spec_version(self.name, resources)

        self.ext = ''
        if 'Windows' == platform.system():
            self.ext = '.exe'
Beispiel #7
0
def cli(ctx, packages, all, list, platform):
    """Uninstall packages."""

    if packages:
        _uninstall(packages, platform)
    elif all:  # pragma: no cover
        packages = Profile().packages
        _uninstall(packages, platform)
    elif list:
        Resources(platform).list_packages(installed=True, notinstalled=False)
    else:
        click.secho(ctx.get_help())
Beispiel #8
0
    def list_packages(self, installed=True, notinstalled=True):
        """Return a list with all the installed/notinstalled packages"""

        self.profile = Profile()

        # Classify packages
        installed_packages, notinstalled_packages = self.get_packages()

        # Print tables
        terminal_width, _ = click.get_terminal_size()

        if installed and installed_packages:

            # - Print installed packages table
            click.echo('\nInstalled packages:\n')

            PACKAGELIST_TPL = ('{name:20} {description:30} {version:<8}')

            click.echo('-' * terminal_width)
            click.echo(
                PACKAGELIST_TPL.format(name=click.style('Name', fg='cyan'),
                                       version='Version',
                                       description='Description'))
            click.echo('-' * terminal_width)

            for package in installed_packages:
                click.echo(
                    PACKAGELIST_TPL.format(
                        name=click.style(package.get('name'), fg='cyan'),
                        version=package.get('version'),
                        description=package.get('description')))

        if notinstalled and notinstalled_packages:

            # - Print not installed packages table
            click.echo('\nNot installed packages:\n')

            PACKAGELIST_TPL = ('{name:20} {description:30}')

            click.echo('-' * terminal_width)
            click.echo(
                PACKAGELIST_TPL.format(name=click.style('Name', fg='yellow'),
                                       description='Description'))
            click.echo('-' * terminal_width)

            for package in notinstalled_packages:
                click.echo(
                    PACKAGELIST_TPL.format(
                        name=click.style(package.get('name'), fg='yellow'),
                        description=package.get('description')))
Beispiel #9
0
    def list_packages(self, installed=True, notinstalled=True):
        """Return a list with all the installed/notinstalled packages"""

        self.profile = Profile()

        # Classify packages
        installed_packages = []
        notinstalled_packages = []

        for package in self.packages:
            data = {
                'name': package,
                'version': None,
                'description': self.packages.get(package).get('description')
            }
            if package in self.profile.packages:
                data['version'] = self.profile.get_package_version(
                    package, self.get_package_release_name(package))
                installed_packages += [data]
            else:
                notinstalled_packages += [data]

        # Print tables
        terminal_width, _ = click.get_terminal_size()

        if installed and installed_packages:

            # - Print installed packages table
            click.echo('\nInstalled packages:\n')

            PACKAGELIST_TPL = ('{name:20} {description:30} {version:<8}')

            click.echo('-' * terminal_width)
            click.echo(
                PACKAGELIST_TPL.format(name=click.style('Name', fg='cyan'),
                                       version='Version',
                                       description='Description'))
            click.echo('-' * terminal_width)

            for package in installed_packages:
                click.echo(
                    PACKAGELIST_TPL.format(
                        name=click.style(package.get('name'), fg='cyan'),
                        version=package.get('version'),
                        description=package.get('description')))

        if notinstalled and notinstalled_packages:

            # - Print not installed packages table
            click.echo('\nNot installed packages:\n')

            PACKAGELIST_TPL = ('{name:20} {description:30}')

            click.echo('-' * terminal_width)
            click.echo(
                PACKAGELIST_TPL.format(name=click.style('Name', fg='yellow'),
                                       description='Description'))
            click.echo('-' * terminal_width)

            for package in notinstalled_packages:
                click.echo(
                    PACKAGELIST_TPL.format(
                        name=click.style(package.get('name'), fg='yellow'),
                        description=package.get('description')))
Beispiel #10
0
    def __init__(self, package, platform='', force=False, checkversion=True):

        # Parse version
        if '@' in package:
            split = package.split('@')
            self.package = split[0]
            self.version = split[1]
        else:
            self.package = package
            self.version = None

        self.force_install = force
        self.packages_dir = ''

        self.resources = Resources(platform)

        if self.package in self.resources.packages:

            self.profile = Profile()

            dirname = 'packages'
            self.packages_dir = util.safe_join(util.get_home_dir(), dirname)

            # Get data
            data = self.resources.packages.get(self.package)
            distribution = self.resources.distribution

            self.specversion = distribution.get('packages').get(self.package)
            self.package_name = data.get('release').get('package_name')
            self.extension = data.get('release').get('extension')
            platform = platform or self._get_platform()

            if checkversion:
                # Check version
                valid_version = self._get_valid_version(
                    data.get('repository').get('name'),
                    data.get('repository').get('organization'),
                    data.get('release').get('tag_name'),
                    self.version,
                    self.specversion,
                    force
                )
                # Valid version
                if not valid_version:
                    # Error
                    click.secho(
                        'Error: No version {} found'.format(self.version),
                        fg='red')
                    exit(1)

                self.version = valid_version

                # e.g., [linux_x86_64, linux]
                platform_os = platform.split('_')[0]
                self.download_urls = [
                    {
                        'url': self.get_download_url(data, platform),
                        'platform': platform
                    },
                    {
                        'url': self.get_download_url(data, platform_os),
                        'platform': platform_os
                    }
                ]

        if self.packages_dir == '':
            click.secho(
                'Error: No such package \'{0}\''.format(self.package),
                fg='red')
            exit(1)
Beispiel #11
0
    def __init__(self, package, platform='', force=False):

        # Parse version
        if '@' in package:
            split = package.split('@')
            self.package = split[0]
            self.version = split[1]
        else:
            self.package = package
            self.version = None

        self.forced_install = force
        self.packages_dir = ''

        self.resources = Resources(platform)

        if self.package in self.resources.packages:

            self.profile = Profile()

            dirname = 'packages'
            self.packages_dir = join(get_home_dir(), dirname)

            # Check version
            data = self.resources.packages[self.package]
            distribution = self.resources.distribution
            self.specversion = distribution['packages'][self.package]

            version = self._get_valid_version(
                data['repository']['name'], data['repository']['organization'],
                data['release']['tag_name'], self.version, self.specversion)

            # Valid version added with @
            if version and self.version:
                self.forced_install = True
            self.version = version if version else ''

            # Valid version
            if version:
                self.platform = platform or self._get_platform()

                release = data['release']
                self.compressed_name = release['compressed_name'].replace(
                    '%V', self.version).replace('%P', self.platform)
                self.uncompressed_name = release['uncompressed_name'].replace(
                    '%V', self.version).replace('%P', self.platform)
                self.package_name = data['release']['package_name']

                if isinstance(data['release']['extension'], dict):
                    for os in ['linux', 'darwin', 'windows']:
                        if os in self.platform:
                            self.extension = data['release']['extension'][os]
                else:
                    self.extension = data['release']['extension']

                self.tarball = self._get_tarball_name(self.compressed_name,
                                                      self.extension)

                self.download_url = self._get_download_url(
                    data['repository']['name'],
                    data['repository']['organization'],
                    data['release']['tag_name'].replace('%V', self.version),
                    self.tarball)
Beispiel #12
0
    def __init__(self, package):

        # Parse version
        if '@' in package:
            split = package.split('@')
            self.package = split[0]
            self.version = split[1]
        else:
            self.package = package
            self.version = None

        self.forced_install = False
        self.valid_version = True

        self.resources = Resources()
        self.profile = Profile()

        if self.package in self.resources.packages:

            data = self.resources.packages[self.package]

            if self.version:
                # Validate version
                valid = self._validate_version(
                    data['repository']['name'],
                    data['repository']['organization'],
                    data['release']['tag_name'],
                    self.version
                )
                if valid:
                    self.forced_install = True
                else:
                    self.valid_version = False
            else:
                # Get latest version
                self.version = self._get_latest_version(
                    data['repository']['name'],
                    data['repository']['organization'],
                    data['release']['tag_name']
                )

            self.arch = self._get_architecture()

            release = data['release']
            self.compressed_name = release['compressed_name'].replace(
                '%V', self.version).replace('%A', self.arch)
            self.uncompressed_name = release['uncompressed_name'].replace(
                '%V', self.version).replace('%A', self.arch)
            self.package_name = data['release']['package_name']

            if isinstance(data['release']['extension'], dict):
                for os in ['linux', 'darwin', 'windows']:
                    if os in self.arch:
                        self.extension = data['release']['extension'][os]
            else:
                self.extension = data['release']['extension']

            self.tarball = self._get_tarball_name(
                self.compressed_name,
                self.extension
            )

            self.download_url = self._get_download_url(
                data['repository']['name'],
                data['repository']['organization'],
                data['release']['tag_name'].replace('%V', self.version),
                self.tarball
            )

            if 'main_dir' in data.keys():
                self.packages_dir = join(expanduser('~'), data['main_dir'])
            else:
                self.packages_dir = join(util.get_home_dir(), 'packages')
Beispiel #13
0
 def post_upload(self):
     if 'darwin' in platform:
         self.profile = Profile()
         self._post_upload_darwin()
Beispiel #14
0
 def __init__(self):
     self.resources = Resources()
     self.profile = Profile()
Beispiel #15
0
 def _setup_darwin(self):
     self.profile = Profile()