mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-02-11 20:48:11 +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)
|
self.check.exists_in_the_database(packages)
|
||||||
|
|
||||||
view = ViewPackage(self.flags)
|
view = ViewPackage(self.flags, self.repository)
|
||||||
|
|
||||||
if self.is_binary:
|
if self.is_binary:
|
||||||
view.package(self.data, packages, self.repository)
|
view.package(self.data, packages)
|
||||||
else:
|
else:
|
||||||
view.slackbuild(self.data, packages)
|
view.slackbuild(self.data, packages)
|
||||||
raise SystemExit()
|
raise SystemExit()
|
||||||
|
|
|
@ -7,142 +7,99 @@ from slpkg.configs import Configs
|
||||||
from slpkg.utilities import Utilities
|
from slpkg.utilities import Utilities
|
||||||
from slpkg.repositories import Repositories
|
from slpkg.repositories import Repositories
|
||||||
from slpkg.models.models import session as Session
|
from slpkg.models.models import session as Session
|
||||||
from slpkg.models.models import (SBoTable, PonceTable,
|
|
||||||
BinariesTable, LastRepoUpdated)
|
|
||||||
|
|
||||||
|
|
||||||
class ViewPackage(Configs):
|
class ViewPackage(Configs):
|
||||||
""" View the repository packages. """
|
""" View the repository packages. """
|
||||||
|
|
||||||
def __init__(self, flags: list):
|
def __init__(self, flags: list, repository: str):
|
||||||
super(Configs, self).__init__()
|
super(Configs, self).__init__()
|
||||||
self.flags: list = flags
|
self.flags: list = flags
|
||||||
|
self.repository: str = repository
|
||||||
|
|
||||||
self.utils = Utilities()
|
self.utils = Utilities()
|
||||||
self.repos = Repositories()
|
self.repos = Repositories()
|
||||||
self.session = Session
|
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(
|
self.option_for_pkg_version: bool = self.utils.is_option(
|
||||||
['-p', '--pkg-version'], flags)
|
['-p', '--pkg-version'], flags)
|
||||||
|
|
||||||
def slackbuild(self, data: dict, slackbuilds: list) -> None:
|
def slackbuild(self, data: dict, slackbuilds: list) -> None:
|
||||||
""" View the packages from the repository. """
|
""" View slackbuild packages information. """
|
||||||
slackbuilds: list = self.utils.apply_package_pattern(data, slackbuilds)
|
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 sbo in slackbuilds:
|
||||||
|
for name, value in data.items():
|
||||||
|
if sbo == name or sbo == '*':
|
||||||
|
|
||||||
info: list = self.session.query(
|
path = Path(self.repos.repositories[self.repository][1], value[0], name, 'README')
|
||||||
self.sbo_table.name,
|
readme = self.utils.read_file(path)
|
||||||
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.repo_path, info[9], info[0], 'README')
|
path = Path(self.repos.repositories[self.repository][1], value[0], name, f'{name}.info')
|
||||||
readme = self.utils.read_file(path)
|
info_file = self.utils.read_file(path)
|
||||||
|
|
||||||
path = Path(self.repo_path, info[9], info[0], f'{info[0]}.info')
|
repo_build_tag = self.utils.read_sbo_build_tag(name, value[0])
|
||||||
info_file = self.utils.read_file(path)
|
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 = '', '', ''
|
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in value[7].split()]))
|
||||||
for line in info_file:
|
if self.option_for_pkg_version:
|
||||||
if line.startswith('HOMEPAGE'):
|
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][2]}'
|
||||||
homepage: str = line[10:-2].strip()
|
f'{self.green}' for pkg in value[7].split()]))
|
||||||
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 info[2].split()]))
|
print(f'Name: {self.green}{name}{self.endc}\n'
|
||||||
if self.option_for_pkg_version:
|
f'Version: {self.green}{value[2]}{self.endc}\n'
|
||||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][2]}'
|
f'Build: {self.green}{repo_build_tag}{self.endc}\n'
|
||||||
f'{self.green}' for pkg in info[2].split()]))
|
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||||
|
f'Homepage: {self.blue}{homepage}{self.endc}\n'
|
||||||
print(f'Name: {self.green}{info[0]}{self.endc}\n'
|
f'Download SlackBuild: {self.blue}{mirror}'
|
||||||
f'Version: {self.green}{info[1]}{self.endc}\n'
|
f'{value[0]}/{name}{repo_tar_suffix}{self.endc}\n'
|
||||||
f'Build: {self.green}{repo_build_tag}{self.endc}\n'
|
f'Download sources: {self.blue}{value[3]}{self.endc}\n'
|
||||||
f'Requires: {self.green}{deps}{self.endc}\n'
|
f'Download_x86_64 sources: {self.blue}{value[4]}{self.endc}\n'
|
||||||
f'Homepage: {self.blue}{homepage}{self.endc}\n'
|
f'Md5sum: {self.yellow}{value[5]}{self.endc}\n'
|
||||||
f'Download SlackBuild: {self.blue}{self.repo_url}{info[9]}/{info[0]}'
|
f'Md5sum_x86_64: {self.yellow}{value[6]}{self.endc}\n'
|
||||||
f'{self.repo_tar_suffix}{self.endc}\n'
|
f'Files: {self.green}{value[1]}{self.endc}\n'
|
||||||
f'Download sources: {self.blue}{info[3]}{self.endc}\n'
|
f'Description: {self.green}{value[8]}{self.endc}\n'
|
||||||
f'Download_x86_64 sources: {self.blue}{info[4]}{self.endc}\n'
|
f'Category: {self.red}{value[0]}{self.endc}\n'
|
||||||
f'Md5sum: {self.yellow}{info[5]}{self.endc}\n'
|
f'SBo url: {self.blue}{mirror}{value[0]}/{name}{self.endc}\n'
|
||||||
f'Md5sum_x86_64: {self.yellow}{info[6]}{self.endc}\n'
|
f'Maintainer: {self.yellow}{maintainer}{self.endc}\n'
|
||||||
f'Files: {self.green}{info[7]}{self.endc}\n'
|
f'Email: {self.yellow}{email}{self.endc}\n'
|
||||||
f'Description: {self.green}{info[8]}{self.endc}\n'
|
f'\nREADME: {self.cyan}{"".join(readme)}{self.endc}')
|
||||||
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)
|
|
||||||
|
|
||||||
|
def package(self, data: dict, packages: list) -> None:
|
||||||
|
""" View binary packages information. """
|
||||||
for package in packages:
|
for package in packages:
|
||||||
|
for name, value in data.items():
|
||||||
|
if package == name or package == '*':
|
||||||
|
|
||||||
info: list = self.session.query(
|
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in value[6].split()]))
|
||||||
BinariesTable.repo,
|
if self.option_for_pkg_version:
|
||||||
BinariesTable.name,
|
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][0]}'
|
||||||
BinariesTable.version,
|
f'{self.green}' for pkg in value[6].split()]))
|
||||||
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()
|
|
||||||
|
|
||||||
build: str = self.utils.split_binary_pkg(info[3])[3]
|
print(f'Name: {self.green}{name}{self.endc}\n'
|
||||||
|
f'Version: {self.green}{value[0]}{self.endc}\n'
|
||||||
last: str = self.session.query(
|
f'Package: {self.cyan}{value[1]}{self.endc}\n'
|
||||||
LastRepoUpdated.date).where(
|
f'Download: {self.blue}{value[2]}{value[3]}/{value[1]}{self.endc}\n'
|
||||||
LastRepoUpdated.repo == repo).first()
|
f'Md5sum: {value[10]}\n'
|
||||||
|
f'Mirror: {self.blue}{value[2]}{self.endc}\n'
|
||||||
deps: str = (', '.join([f'{self.cyan}{pkg}' for pkg in info[9].split()]))
|
f'Location: {self.red}{value[3]}{self.endc}\n'
|
||||||
if self.option_for_pkg_version:
|
f'Size Comp: {value[4]}\n'
|
||||||
deps: str = (', '.join([f'{self.cyan}{pkg}{self.endc} {self.yellow}{data[pkg][0]}'
|
f'Size Uncomp: {value[5]}\n'
|
||||||
f'{self.green}' for pkg in info[9].split()]))
|
f'Requires: {self.green}{deps}{self.endc}\n'
|
||||||
|
f'Conflicts: {value[7]}\n'
|
||||||
print(f'Repository: {self.yellow}{info[0]}{self.endc}\n'
|
f'Suggests: {value[8]}\n'
|
||||||
f'Last Updated: {self.violet}{last[0]}{self.endc}\n'
|
f'Description: {value[9]}\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')
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue