mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-02-07 08:46:21 +01:00
Updated for view packages
This commit is contained in:
parent
d57c8b0af9
commit
d275abcb79
2 changed files with 70 additions and 113 deletions
|
@ -695,10 +695,10 @@ class Argparse(Configs):
|
|||
|
||||
self.check.exists_in_the_database(packages)
|
||||
|
||||
view = ViewPackage(self.flags)
|
||||
view = ViewPackage(self.flags, self.repository)
|
||||
|
||||
if self.is_binary:
|
||||
view.package(self.data, packages, self.repository)
|
||||
view.package(self.data, packages)
|
||||
else:
|
||||
view.slackbuild(self.data, packages)
|
||||
raise SystemExit()
|
||||
|
|
|
@ -7,142 +7,99 @@ from slpkg.configs import Configs
|
|||
from slpkg.utilities import Utilities
|
||||
from slpkg.repositories import Repositories
|
||||
from slpkg.models.models import session as Session
|
||||
from slpkg.models.models import (SBoTable, PonceTable,
|
||||
BinariesTable, LastRepoUpdated)
|
||||
|
||||
|
||||
class ViewPackage(Configs):
|
||||
""" View the repository packages. """
|
||||
|
||||
def __init__(self, flags: list):
|
||||
def __init__(self, flags: list, repository: str):
|
||||
super(Configs, self).__init__()
|
||||
self.flags: list = flags
|
||||
self.repository: str = repository
|
||||
|
||||
self.utils = Utilities()
|
||||
self.repos = Repositories()
|
||||
self.session = Session
|
||||
|
||||
# Switch between sbo and ponce repository.
|
||||
self.sbo_table = SBoTable
|
||||
self.repo_url: str = self.repos.sbo_repo_mirror[0]
|
||||
self.repo_path: Path = self.repos.sbo_repo_path
|
||||
self.repo_tar_suffix: str = self.repos.sbo_repo_tar_suffix
|
||||
if self.repos.ponce_repo:
|
||||
self.sbo_table = PonceTable
|
||||
self.repo_url: str = self.repos.ponce_repo_mirror[0]
|
||||
self.repo_path: Path = self.repos.ponce_repo_path
|
||||
self.repo_tar_suffix: str = ''
|
||||
|
||||
self.option_for_pkg_version: bool = self.utils.is_option(
|
||||
['-p', '--pkg-version'], flags)
|
||||
|
||||
def slackbuild(self, data: dict, slackbuilds: list) -> None:
|
||||
""" View the packages from the repository. """
|
||||
slackbuilds: list = self.utils.apply_package_pattern(data, slackbuilds)
|
||||
""" View slackbuild packages information. """
|
||||
repo: dict = {
|
||||
self.repos.sbo_repo_name: self.repos.sbo_repo_tar_suffix,
|
||||
self.repos.ponce_repo_name: ''
|
||||
}
|
||||
|
||||
repo_tar_suffix: str = repo[self.repository]
|
||||
|
||||
for sbo in slackbuilds:
|
||||
for name, value in data.items():
|
||||
if sbo == name or sbo == '*':
|
||||
|
||||
info: list = self.session.query(
|
||||
self.sbo_table.name,
|
||||
self.sbo_table.version,
|
||||
self.sbo_table.requires,
|
||||
self.sbo_table.download,
|
||||
self.sbo_table.download64,
|
||||
self.sbo_table.md5sum,
|
||||
self.sbo_table.md5sum64,
|
||||
self.sbo_table.files,
|
||||
self.sbo_table.short_description,
|
||||
self.sbo_table.location
|
||||
).filter(self.sbo_table.name == sbo).first()
|
||||
path = Path(self.repos.repositories[self.repository][1], value[0], name, 'README')
|
||||
readme = self.utils.read_file(path)
|
||||
|
||||
path = Path(self.repo_path, info[9], info[0], 'README')
|
||||
readme = self.utils.read_file(path)
|
||||
path = Path(self.repos.repositories[self.repository][1], value[0], name, f'{name}.info')
|
||||
info_file = self.utils.read_file(path)
|
||||
|
||||
path = Path(self.repo_path, info[9], info[0], f'{info[0]}.info')
|
||||
info_file = self.utils.read_file(path)
|
||||
repo_build_tag = self.utils.read_sbo_build_tag(name, value[0])
|
||||
mirror: str = self.repos.repositories[self.repository][2][0]
|
||||
|
||||
repo_build_tag = self.utils.read_sbo_build_tag(info[0], info[9])
|
||||
maintainer, email, homepage = '', '', ''
|
||||
for line in info_file:
|
||||
if line.startswith('HOMEPAGE'):
|
||||
homepage: str = line[10:-2].strip()
|
||||
if line.startswith('MAINTAINER'):
|
||||
maintainer: str = line[12:-2].strip()
|
||||
if line.startswith('EMAIL'):
|
||||
email: str = line[7:-2].strip()
|
||||
|
||||
maintainer, email, homepage = '', '', ''
|
||||
for line in info_file:
|
||||
if line.startswith('HOMEPAGE'):
|
||||
homepage: str = line[10:-2].strip()
|
||||
if line.startswith('MAINTAINER'):
|
||||
maintainer: str = line[12:-2].strip()
|
||||
if line.startswith('EMAIL'):
|
||||
email: str = line[7:-2].strip()
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in value[7].split()]))
|
||||
if self.option_for_pkg_version:
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][2]}'
|
||||
f'{self.green}' for pkg in value[7].split()]))
|
||||
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in info[2].split()]))
|
||||
if self.option_for_pkg_version:
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][2]}'
|
||||
f'{self.green}' for pkg in info[2].split()]))
|
||||
|
||||
print(f'Name: {self.green}{info[0]}{self.endc}\n'
|
||||
f'Version: {self.green}{info[1]}{self.endc}\n'
|
||||
f'Build: {self.green}{repo_build_tag}{self.endc}\n'
|
||||
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||
f'Homepage: {self.blue}{homepage}{self.endc}\n'
|
||||
f'Download SlackBuild: {self.blue}{self.repo_url}{info[9]}/{info[0]}'
|
||||
f'{self.repo_tar_suffix}{self.endc}\n'
|
||||
f'Download sources: {self.blue}{info[3]}{self.endc}\n'
|
||||
f'Download_x86_64 sources: {self.blue}{info[4]}{self.endc}\n'
|
||||
f'Md5sum: {self.yellow}{info[5]}{self.endc}\n'
|
||||
f'Md5sum_x86_64: {self.yellow}{info[6]}{self.endc}\n'
|
||||
f'Files: {self.green}{info[7]}{self.endc}\n'
|
||||
f'Description: {self.green}{info[8]}{self.endc}\n'
|
||||
f'Slackware: {self.cyan}{self.repo_url.split("/")[-1]}{self.endc}\n'
|
||||
f'Category: {self.red}{info[9]}{self.endc}\n'
|
||||
f'SBo url: {self.blue}{self.repo_url}{info[9]}/{info[0]}{self.endc}\n'
|
||||
f'Maintainer: {self.yellow}{maintainer}{self.endc}\n'
|
||||
f'Email: {self.yellow}{email}{self.endc}\n'
|
||||
f'\nREADME: {self.cyan}{"".join(readme)}{self.endc}')
|
||||
|
||||
def package(self, data: dict, packages: list, repo: str) -> None:
|
||||
packages: list = self.utils.apply_package_pattern(data, packages)
|
||||
print(f'Name: {self.green}{name}{self.endc}\n'
|
||||
f'Version: {self.green}{value[2]}{self.endc}\n'
|
||||
f'Build: {self.green}{repo_build_tag}{self.endc}\n'
|
||||
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||
f'Homepage: {self.blue}{homepage}{self.endc}\n'
|
||||
f'Download SlackBuild: {self.blue}{mirror}'
|
||||
f'{value[0]}/{name}{repo_tar_suffix}{self.endc}\n'
|
||||
f'Download sources: {self.blue}{value[3]}{self.endc}\n'
|
||||
f'Download_x86_64 sources: {self.blue}{value[4]}{self.endc}\n'
|
||||
f'Md5sum: {self.yellow}{value[5]}{self.endc}\n'
|
||||
f'Md5sum_x86_64: {self.yellow}{value[6]}{self.endc}\n'
|
||||
f'Files: {self.green}{value[1]}{self.endc}\n'
|
||||
f'Description: {self.green}{value[8]}{self.endc}\n'
|
||||
f'Category: {self.red}{value[0]}{self.endc}\n'
|
||||
f'SBo url: {self.blue}{mirror}{value[0]}/{name}{self.endc}\n'
|
||||
f'Maintainer: {self.yellow}{maintainer}{self.endc}\n'
|
||||
f'Email: {self.yellow}{email}{self.endc}\n'
|
||||
f'\nREADME: {self.cyan}{"".join(readme)}{self.endc}')
|
||||
|
||||
def package(self, data: dict, packages: list) -> None:
|
||||
""" View binary packages information. """
|
||||
for package in packages:
|
||||
for name, value in data.items():
|
||||
if package == name or package == '*':
|
||||
|
||||
info: list = self.session.query(
|
||||
BinariesTable.repo,
|
||||
BinariesTable.name,
|
||||
BinariesTable.version,
|
||||
BinariesTable.package,
|
||||
BinariesTable.checksum,
|
||||
BinariesTable.mirror,
|
||||
BinariesTable.location,
|
||||
BinariesTable.size_comp,
|
||||
BinariesTable.size_uncomp,
|
||||
BinariesTable.required,
|
||||
BinariesTable.conflicts,
|
||||
BinariesTable.suggests,
|
||||
BinariesTable.description,
|
||||
).filter(BinariesTable.name == package).where(
|
||||
BinariesTable.repo == repo).first()
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in value[6].split()]))
|
||||
if self.option_for_pkg_version:
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][0]}'
|
||||
f'{self.green}' for pkg in value[6].split()]))
|
||||
|
||||
build: str = self.utils.split_binary_pkg(info[3])[3]
|
||||
|
||||
last: str = self.session.query(
|
||||
LastRepoUpdated.date).where(
|
||||
LastRepoUpdated.repo == repo).first()
|
||||
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in info[9].split()]))
|
||||
if self.option_for_pkg_version:
|
||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][0]}'
|
||||
f'{self.green}' for pkg in info[9].split()]))
|
||||
|
||||
print(f'Repository: {self.yellow}{info[0]}{self.endc}\n'
|
||||
f'Last Updated: {self.violet}{last[0]}{self.endc}\n'
|
||||
f'Name: {self.green}{info[1]}{self.endc}\n'
|
||||
f'Version: {self.green}{info[2]}{self.endc}\n'
|
||||
f'Build: {self.green}{build}{self.endc}\n'
|
||||
f'Package: {self.cyan}{info[3]}{self.endc}\n'
|
||||
f'Download: {self.blue}{info[5]}{info[6]}/{info[3]}{self.endc}\n'
|
||||
f'Md5sum: {info[4]}\n'
|
||||
f'Mirror: {self.blue}{info[5]}{self.endc}\n'
|
||||
f'Location: {self.red}{info[6]}{self.endc}\n'
|
||||
f'Size Comp: {info[7]}\n'
|
||||
f'Size Uncomp: {info[8]}\n'
|
||||
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||
f'Conflicts: {info[10]}\n'
|
||||
f'Suggests: {info[11]}\n'
|
||||
f'Description: {info[12]}\n')
|
||||
print(f'Name: {self.green}{name}{self.endc}\n'
|
||||
f'Version: {self.green}{value[0]}{self.endc}\n'
|
||||
f'Package: {self.cyan}{value[1]}{self.endc}\n'
|
||||
f'Download: {self.blue}{value[2]}{value[3]}/{value[1]}{self.endc}\n'
|
||||
f'Md5sum: {value[10]}\n'
|
||||
f'Mirror: {self.blue}{value[2]}{self.endc}\n'
|
||||
f'Location: {self.red}{value[3]}{self.endc}\n'
|
||||
f'Size Comp: {value[4]}\n'
|
||||
f'Size Uncomp: {value[5]}\n'
|
||||
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||
f'Conflicts: {value[7]}\n'
|
||||
f'Suggests: {value[8]}\n'
|
||||
f'Description: {value[9]}\n')
|
||||
|
|
Loading…
Add table
Reference in a new issue