def create_ini(self, board, project_dir='', sayyes=False): """Creates a new apio project file""" if project_dir is None: project_dir = '' ini_path = join(project_dir, PROJECT_FILENAME) # Check board boards = Resources().boards if board not in boards.keys(): click.secho('Error: No such board \'{}\''.format(board), fg='red') sys.exit(1) if isfile(ini_path): # -- If sayyes, skip the question if sayyes: self._create_ini_file(board, ini_path, PROJECT_FILENAME) else: click.secho( 'Warning: {} file already exists'.format(PROJECT_FILENAME), fg='yellow') if click.confirm('Do you want to replace it?'): self._create_ini_file(board, ini_path, PROJECT_FILENAME) else: click.secho('Abort!', fg='red') else: self._create_ini_file(board, ini_path, PROJECT_FILENAME)
def cli(ctx, packages, all, list, force, platform): """Install packages. Input parameters: - packages: List with the names of the packages to install - all: Flag: Install all the packages available for that platform - list: Flag. List all the packages (installed or not) - force: Flag. Force installation - platform: Flag. Select platform (advaced. For developers) """ # -- Install the given packages if packages: for package in packages: #-- The installion is performed by the Installer object Installer(package, platform, force).install() # -- Install all the available packages elif all: # pragma: no cover packages = Resources(platform).packages for package in packages: Installer(package, platform, force).install() # -- List all the packages (installed or not) elif list: Resources(platform).list_packages(installed=True, notinstalled=True) # -- Invalid option. Just show the help else: click.secho(ctx.get_help())
def create_ini(self, board, project_dir='', sayyes=False): """Creates a new apio project file""" if project_dir is None: project_dir = '' ini_path = join(project_dir, PROJECT_FILENAME) # Check board boards = Resources().boards if board not in boards.keys(): click.secho( 'Error: No such board \'{}\''.format(board), fg='red') sys.exit(1) if isfile(ini_path): # -- If sayyes, skip the question if sayyes: self._create_ini_file(board, ini_path, PROJECT_FILENAME) else: click.secho( 'Warning: {} file already exists'.format(PROJECT_FILENAME), fg='yellow') if click.confirm('Do you want to replace it?'): self._create_ini_file(board, ini_path, PROJECT_FILENAME) else: click.secho('Abort!', fg='red') else: self._create_ini_file(board, ini_path, PROJECT_FILENAME)
def cli(ctx, list, fpga): """Manage FPGA boards.""" if list: Resources().list_boards() elif fpga: Resources().list_fpgas() else: click.secho(ctx.get_help())
def cli(ctx, packages, all, list, platform): """Uninstall packages.""" if packages: _uninstall(packages, platform) elif all: # pragma: no cover packages = Resources(platform).packages _uninstall(packages, platform) elif list: Resources(platform).list_packages(installed=True, notinstalled=False) else: click.secho(ctx.get_help())
def cli(ctx, packages, all, list, force, platform): """Install packages.""" if packages: for package in packages: Installer(package, platform, force).install() elif all: # pragma: no cover packages = Resources(platform).packages for package in packages: Installer(package, platform, force).install() elif list: Resources(platform).list_packages(installed=True, notinstalled=True) 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 cli(ctx, packages, all, list): """Install packages.""" if packages: for package in packages: Installer(package).install() elif all: # pragma: no cover packages = Resources().packages for package in packages: if package == 'pio-fpga': # skip pio-fpga continue Installer(package).install() elif list: Resources().list_packages(installed=True, notinstalled=True) else: click.secho(ctx.get_help())
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 __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 __init__(self): self.resources = Resources()
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 __init__(self): self.resources = Resources() self.profile = Profile()