diff --git a/ChangeLog.txt b/ChangeLog.txt index 4f05dae0..fe685aa5 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,9 @@ +4.2.5 - 01/11/2022 +Added: +- Command to check if there is news on ChangeLog.txt +Updated: +- man page + 4.2.4 - 30/10/2022 Added: - Patching SBo TAG from the configuration file diff --git a/README.rst b/README.rst index 1b64176f..508a518c 100644 --- a/README.rst +++ b/README.rst @@ -30,8 +30,8 @@ Install from the official third-party `SBo repository .SH SYNAPSES .P -slpkg [-h|-v] [update] [upgrade] [build] [install] [download] [remove] [find] [view] [search] [clean-logs] [clean-tmp] --yes --jobs --resolve-off --reinstall --skip-installed +slpkg [-h|-v] [update] [upgrade] [check-updates] [build] [install] [download] [remove] [find] [view] [search] [clean-logs] [clean-tmp] --yes --jobs --resolve-off --reinstall --skip-installed .SH DESCRIPTION .P Slpkg is a software package manager that installs, updates, and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. @@ -19,12 +19,17 @@ Updates the package list and the database. .P upgrade .RS -Upgrade all the installed packages. +Upgrade all the installed packages if the newer version exists in the repository. +.RE +.P +check-updates +.RS +Check if there is any news on the SlackBuild's ChangeLog.txt file. .RE .P build .RS -Builds the scripts and puts them in the /tmp directory. +Builds the Slackbuilds scripts and adds them to the /tmp directory. .RE .P install @@ -34,12 +39,12 @@ Builds and installs the packages in the correct order and also logs the packages .P download .RS -Download only the packages without building or installing it. +Download the SlackBuilds scripts and the sources without building or installing it. .RE .P remove .RS -Removes packages with dependencies if the packages was installed with slpkg install method. +Removes packages with dependencies if the packages was installed with 'slpkg install' method. Slpkg looks at the 'sbo_repo_tag' configuration to find packages for removal. .RE .P find @@ -59,12 +64,12 @@ Search and match packages from the repository. .P clean-logs .RS -Cleans dependencies log tracking. +Cleans dependencies log tracking. After that procedure you should remove dependencies by hand. .RE .P clean-tmp .RS -Deletes all the downloaded sources. +Deletes all the downloaded SlackBuilds scripts and sources. .RE .SH OPTIONS .P diff --git a/setup.cfg b/setup.cfg index 2af65d32..b272d0a1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = slpkg -version = 4.2.4 +version = 4.2.5 license_file = LICENSE author = Dimitris Zlatanidis author_email = d.zlatanidis@gmail.com diff --git a/slpkg/configs.py b/slpkg/configs.py index 170bfc22..d3905606 100644 --- a/slpkg/configs.py +++ b/slpkg/configs.py @@ -35,6 +35,7 @@ class Configs: # SBo repository configs sbo_repo_url: str = 'http://slackbuilds.org/slackbuilds/15.0' sbo_txt: str = 'SLACKBUILDS.TXT' + chglog_txt: str = 'ChangeLog.txt' sbo_tar_suffix: str = '.tar.gz' sbo_repo_tag: str = '_SBo' @@ -74,6 +75,7 @@ class Configs: # SBo repository details sbo_repo_url: str = config['sbo_repo_url'] sbo_txt: str = config['sbo_txt'] + chglog_txt: str = config['chglog_txt'] sbo_tar_suffix: str = config['sbo_tar_suffix'] sbo_repo_tag: str = config['sbo_repo_tag'] diff --git a/slpkg/main.py b/slpkg/main.py index 4ca2d99f..80094cd1 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -15,6 +15,7 @@ from slpkg.views.cli_menu import usage from slpkg.download_only import Download from slpkg.slackbuild import Slackbuilds from slpkg.view_package import ViewPackage +from slpkg.check_updates import CheckUpdates from slpkg.find_installed import FindInstalled from slpkg.remove_packages import RemovePackages from slpkg.clean_logs import CleanLogsDependencies @@ -81,6 +82,15 @@ class Argparse: raise SystemExit() usage(1) + def check_updates(self): + if len(self.args) == 1 and not self.flags: + self.check.database() + + check = CheckUpdates() + check.updates() + raise SystemExit() + usage(1) + def build(self): if len(self.args) >= 2 and '--reinstall' not in self.flags: packages = list(set(self.args[1:])) @@ -219,6 +229,7 @@ def main(): '--version': argparse.version, 'update': argparse.update, 'upgrade': argparse.upgrade, + 'check-updates': argparse.check_updates, 'build': argparse.build, 'install': argparse.install, 'download': argparse.download, diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index 4ba0cad1..01735c32 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -20,6 +20,7 @@ class UpdateRepository: sbo_repo_path: str = Configs.sbo_repo_path url: str = Configs.sbo_repo_url sbo_txt: str = Configs.sbo_txt + chglog_txt: str = Configs.chglog_txt db_path: str = Configs.db_path database: str = Configs.database session: str = Session @@ -27,12 +28,15 @@ class UpdateRepository: def sbo(self): print('Updating the package list...\n') self.delete_file(self.sbo_repo_path, self.sbo_txt) + self.delete_file(self.sbo_repo_path, self.chglog_txt) self.delete_sbo_data() - sbo_repo_url = f'{self.url}/{self.sbo_txt}' + slackbuilds_txt = f'{self.url}/{self.sbo_txt}' + changelog_txt = f'{self.url}/{self.chglog_txt}' wget = Wget() - wget.download(self.sbo_repo_path, sbo_repo_url) + wget.download(self.sbo_repo_path, slackbuilds_txt) + wget.download(self.sbo_repo_path, changelog_txt) data = CreateData() data.insert_sbo_table() diff --git a/slpkg/version.py b/slpkg/version.py index 3cb4c146..44826973 100644 --- a/slpkg/version.py +++ b/slpkg/version.py @@ -10,7 +10,7 @@ from slpkg.configs import Configs @dataclass class Version: prog_name: str = Configs.prog_name - version_info: tuple = (4, 2, 4) + version_info: tuple = (4, 2, 5) version: str = '{0}.{1}.{2}'.format(*version_info) license: str = 'MIT License' author: str = 'dslackw' diff --git a/slpkg/views/cli_menu.py b/slpkg/views/cli_menu.py index 0c6091c6..80417829 100644 --- a/slpkg/views/cli_menu.py +++ b/slpkg/views/cli_menu.py @@ -21,6 +21,7 @@ def usage(status: int): f'{BOLD}COMMANDS:{ENDC}', f' {RED}update{ENDC} Update the package lists.', f' {CYAN}upgrade{ENDC} Upgrade all the packages.', + f' {CYAN}check-updates{ENDC} Check for news on ChangeLog.txt.', f' {CYAN}build{ENDC} Build only the packages.', f' {CYAN}install{ENDC} Build and install the packages.', f' {CYAN}download{ENDC} Download only the scripts and sources.',