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())
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)
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)
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)
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()
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'
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())
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')))
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')))
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)
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)
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')
def post_upload(self): if 'darwin' in platform: self.profile = Profile() self._post_upload_darwin()
def __init__(self): self.resources = Resources() self.profile = Profile()
def _setup_darwin(self): self.profile = Profile()