mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-09-10 18:59:57 +00:00
Compare commits
5 Commits
117f096d41
...
2.7.0
Author | SHA1 | Date | |
---|---|---|---|
d517d8bfbb | |||
37e57c13c8 | |||
19bb19e9f5 | |||
3a4e8f4d97 | |||
4db8ad8e8d |
@ -533,5 +533,5 @@ valid-metaclass-classmethod-first-arg=cls
|
|||||||
|
|
||||||
# Exceptions that will emit a warning when being caught. Defaults to
|
# Exceptions that will emit a warning when being caught. Defaults to
|
||||||
# "BaseException, Exception".
|
# "BaseException, Exception".
|
||||||
overgeneral-exceptions=BaseException,
|
overgeneral-exceptions=builtins.BaseException,
|
||||||
Exception
|
builtins.Exception
|
||||||
|
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 673 KiB After Width: | Height: | Size: 678 KiB |
@ -1,4 +1,4 @@
|
|||||||
.TH AHRIMAN "1" "2023\-01\-27" "ahriman" "Generated Python Manual"
|
.TH AHRIMAN "1" "2023\-02\-20" "ahriman" "Generated Python Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
ahriman
|
ahriman
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -215,8 +215,8 @@ usage: ahriman help\-version [\-h]
|
|||||||
print application and its dependencies versions
|
print application and its dependencies versions
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman package\-add'\/\fR
|
.SH COMMAND \fI\,'ahriman package\-add'\/\fR
|
||||||
usage: ahriman package\-add [\-h] [\-e] [\-n] [\-y] [\-s {auto,archive,aur,directory,local,remote,repository}]
|
usage: ahriman package\-add [\-h] [\-\-dependencies | \-\-no\-dependencies] [\-e] [\-n] [\-y]
|
||||||
[\-\-without\-dependencies]
|
[\-s {auto,archive,aur,directory,local,remote,repository}]
|
||||||
package [package ...]
|
package [package ...]
|
||||||
|
|
||||||
add existing or new package to the build queue
|
add existing or new package to the build queue
|
||||||
@ -226,6 +226,10 @@ add existing or new package to the build queue
|
|||||||
package source (base name, path to local files, remote URL)
|
package source (base name, path to local files, remote URL)
|
||||||
|
|
||||||
.SH OPTIONS \fI\,'ahriman package\-add'\/\fR
|
.SH OPTIONS \fI\,'ahriman package\-add'\/\fR
|
||||||
|
.TP
|
||||||
|
\fB\-\-dependencies\fR, \fB\-\-no\-dependencies\fR
|
||||||
|
process missing package dependencies (default: True)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-e\fR, \fB\-\-exit\-code\fR
|
\fB\-e\fR, \fB\-\-exit\-code\fR
|
||||||
return non\-zero exit status if result is empty
|
return non\-zero exit status if result is empty
|
||||||
@ -242,10 +246,6 @@ download fresh package databases from the mirror before actions, \-yy to force r
|
|||||||
\fB\-s\fR \fI\,{auto,archive,aur,directory,local,remote,repository}\/\fR, \fB\-\-source\fR \fI\,{auto,archive,aur,directory,local,remote,repository}\/\fR
|
\fB\-s\fR \fI\,{auto,archive,aur,directory,local,remote,repository}\/\fR, \fB\-\-source\fR \fI\,{auto,archive,aur,directory,local,remote,repository}\/\fR
|
||||||
explicitly specify the package source for this command
|
explicitly specify the package source for this command
|
||||||
|
|
||||||
.TP
|
|
||||||
\fB\-\-without\-dependencies\fR
|
|
||||||
do not add dependencies
|
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman package\-remove'\/\fR
|
.SH COMMAND \fI\,'ahriman package\-remove'\/\fR
|
||||||
usage: ahriman package\-remove [\-h] package [package ...]
|
usage: ahriman package\-remove [\-h] package [package ...]
|
||||||
|
|
||||||
@ -401,8 +401,8 @@ fetch actual version of VCS packages (default: True)
|
|||||||
download fresh package databases from the mirror before actions, \-yy to force refresh even if up to date
|
download fresh package databases from the mirror before actions, \-yy to force refresh even if up to date
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman repo\-daemon'\/\fR
|
.SH COMMAND \fI\,'ahriman repo\-daemon'\/\fR
|
||||||
usage: ahriman repo\-daemon [\-h] [\-i INTERVAL] [\-\-aur | \-\-no\-aur] [\-\-local | \-\-no\-local] [\-\-manual | \-\-no\-manual]
|
usage: ahriman repo\-daemon [\-h] [\-i INTERVAL] [\-\-aur | \-\-no\-aur] [\-\-dependencies | \-\-no\-dependencies]
|
||||||
[\-\-vcs | \-\-no\-vcs] [\-y]
|
[\-\-local | \-\-no\-local] [\-\-manual | \-\-no\-manual] [\-\-vcs | \-\-no\-vcs] [\-y]
|
||||||
|
|
||||||
start process which periodically will run update process
|
start process which periodically will run update process
|
||||||
|
|
||||||
@ -415,6 +415,10 @@ interval between runs in seconds
|
|||||||
\fB\-\-aur\fR, \fB\-\-no\-aur\fR
|
\fB\-\-aur\fR, \fB\-\-no\-aur\fR
|
||||||
enable or disable checking for AUR updates (default: True)
|
enable or disable checking for AUR updates (default: True)
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-dependencies\fR, \fB\-\-no\-dependencies\fR
|
||||||
|
process missing package dependencies (default: True)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-local\fR, \fB\-\-no\-local\fR
|
\fB\-\-local\fR, \fB\-\-no\-local\fR
|
||||||
enable or disable checking of local packages for updates (default: True)
|
enable or disable checking of local packages for updates (default: True)
|
||||||
@ -523,8 +527,8 @@ run triggers on empty build result as configured by settings
|
|||||||
instead of running all triggers as set by configuration, just process specified ones in order of mention
|
instead of running all triggers as set by configuration, just process specified ones in order of mention
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman repo\-update'\/\fR
|
.SH COMMAND \fI\,'ahriman repo\-update'\/\fR
|
||||||
usage: ahriman repo\-update [\-h] [\-\-dry\-run] [\-e] [\-\-aur | \-\-no\-aur] [\-\-local | \-\-no\-local] [\-\-manual | \-\-no\-manual]
|
usage: ahriman repo\-update [\-h] [\-\-aur | \-\-no\-aur] [\-\-dependencies | \-\-no\-dependencies] [\-\-dry\-run] [\-e]
|
||||||
[\-\-vcs | \-\-no\-vcs] [\-y]
|
[\-\-local | \-\-no\-local] [\-\-manual | \-\-no\-manual] [\-\-vcs | \-\-no\-vcs] [\-y]
|
||||||
[package ...]
|
[package ...]
|
||||||
|
|
||||||
check for packages updates and run build process if requested
|
check for packages updates and run build process if requested
|
||||||
@ -534,6 +538,14 @@ check for packages updates and run build process if requested
|
|||||||
filter check by package base
|
filter check by package base
|
||||||
|
|
||||||
.SH OPTIONS \fI\,'ahriman repo\-update'\/\fR
|
.SH OPTIONS \fI\,'ahriman repo\-update'\/\fR
|
||||||
|
.TP
|
||||||
|
\fB\-\-aur\fR, \fB\-\-no\-aur\fR
|
||||||
|
enable or disable checking for AUR updates (default: True)
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-dependencies\fR, \fB\-\-no\-dependencies\fR
|
||||||
|
process missing package dependencies (default: True)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-dry\-run\fR
|
\fB\-\-dry\-run\fR
|
||||||
just perform check for updates, same as check command
|
just perform check for updates, same as check command
|
||||||
@ -542,10 +554,6 @@ just perform check for updates, same as check command
|
|||||||
\fB\-e\fR, \fB\-\-exit\-code\fR
|
\fB\-e\fR, \fB\-\-exit\-code\fR
|
||||||
return non\-zero exit status if result is empty
|
return non\-zero exit status if result is empty
|
||||||
|
|
||||||
.TP
|
|
||||||
\fB\-\-aur\fR, \fB\-\-no\-aur\fR
|
|
||||||
enable or disable checking for AUR updates (default: True)
|
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-local\fR, \fB\-\-no\-local\fR
|
\fB\-\-local\fR, \fB\-\-no\-local\fR
|
||||||
enable or disable checking of local packages for updates (default: True)
|
enable or disable checking of local packages for updates (default: True)
|
||||||
@ -590,10 +598,15 @@ clear directory with built packages (default: False)
|
|||||||
clear directory with pacman local database cache (default: False)
|
clear directory with pacman local database cache (default: False)
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman service\-config'\/\fR
|
.SH COMMAND \fI\,'ahriman service\-config'\/\fR
|
||||||
usage: ahriman service\-config [\-h]
|
usage: ahriman service\-config [\-h] [\-\-secure | \-\-no\-secure]
|
||||||
|
|
||||||
dump configuration for the specified architecture
|
dump configuration for the specified architecture
|
||||||
|
|
||||||
|
.SH OPTIONS \fI\,'ahriman service\-config'\/\fR
|
||||||
|
.TP
|
||||||
|
\fB\-\-secure\fR, \fB\-\-no\-secure\fR
|
||||||
|
hide passwords and secrets from output (default: True)
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman service\-config\-validate'\/\fR
|
.SH COMMAND \fI\,'ahriman service\-config\-validate'\/\fR
|
||||||
usage: ahriman service\-config\-validate [\-h] [\-e]
|
usage: ahriman service\-config\-validate [\-h] [\-e]
|
||||||
|
|
||||||
|
@ -52,6 +52,14 @@ ahriman.core.database.migrations.m005\_make\_opt\_depends module
|
|||||||
:no-undoc-members:
|
:no-undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
ahriman.core.database.migrations.m006\_packages\_architecture\_required module
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.core.database.migrations.m006_packages_architecture_required
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
Module contents
|
Module contents
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
@ -10,9 +10,9 @@ _shtab_ahriman_help_commands_unsafe_option_strings=('-h' '--help' '--command')
|
|||||||
_shtab_ahriman_help_updates_option_strings=('-h' '--help' '-e' '--exit-code')
|
_shtab_ahriman_help_updates_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
_shtab_ahriman_help_version_option_strings=('-h' '--help')
|
_shtab_ahriman_help_version_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_version_option_strings=('-h' '--help')
|
_shtab_ahriman_version_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_package_add_option_strings=('-h' '--help' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source' '--without-dependencies')
|
_shtab_ahriman_package_add_option_strings=('-h' '--help' '--dependencies' '--no-dependencies' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source')
|
||||||
_shtab_ahriman_add_option_strings=('-h' '--help' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source' '--without-dependencies')
|
_shtab_ahriman_add_option_strings=('-h' '--help' '--dependencies' '--no-dependencies' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source')
|
||||||
_shtab_ahriman_package_update_option_strings=('-h' '--help' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source' '--without-dependencies')
|
_shtab_ahriman_package_update_option_strings=('-h' '--help' '--dependencies' '--no-dependencies' '-e' '--exit-code' '-n' '--now' '-y' '--refresh' '-s' '--source')
|
||||||
_shtab_ahriman_package_remove_option_strings=('-h' '--help')
|
_shtab_ahriman_package_remove_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_remove_option_strings=('-h' '--help')
|
_shtab_ahriman_remove_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_package_status_option_strings=('-h' '--help' '--ahriman' '-e' '--exit-code' '--info' '--no-info' '-s' '--status')
|
_shtab_ahriman_package_status_option_strings=('-h' '--help' '--ahriman' '-e' '--exit-code' '--info' '--no-info' '-s' '--status')
|
||||||
@ -27,8 +27,8 @@ _shtab_ahriman_patch_set_add_option_strings=('-h' '--help' '-t' '--track')
|
|||||||
_shtab_ahriman_repo_backup_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_backup_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_check_option_strings=('-h' '--help' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_check_option_strings=('-h' '--help' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_check_option_strings=('-h' '--help' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_check_option_strings=('-h' '--help' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_repo_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--dependencies' '--no-dependencies' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--dependencies' '--no-dependencies' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_repo_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '-e' '--exit-code')
|
_shtab_ahriman_repo_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '-e' '--exit-code')
|
||||||
_shtab_ahriman_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '-e' '--exit-code')
|
_shtab_ahriman_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '-e' '--exit-code')
|
||||||
_shtab_ahriman_repo_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
_shtab_ahriman_repo_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
||||||
@ -43,14 +43,14 @@ _shtab_ahriman_repo_sync_option_strings=('-h' '--help')
|
|||||||
_shtab_ahriman_sync_option_strings=('-h' '--help')
|
_shtab_ahriman_sync_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_tree_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_tree_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_triggers_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_triggers_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_update_option_strings=('-h' '--help' '--dry-run' '-e' '--exit-code' '--aur' '--no-aur' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_update_option_strings=('-h' '--help' '--dry-run' '-e' '--exit-code' '--aur' '--no-aur' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--local' '--no-local' '--manual' '--no-manual' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_service_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
_shtab_ahriman_service_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
||||||
_shtab_ahriman_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
_shtab_ahriman_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
||||||
_shtab_ahriman_repo_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
_shtab_ahriman_repo_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
||||||
_shtab_ahriman_service_config_option_strings=('-h' '--help')
|
_shtab_ahriman_service_config_option_strings=('-h' '--help' '--secure' '--no-secure')
|
||||||
_shtab_ahriman_config_option_strings=('-h' '--help')
|
_shtab_ahriman_config_option_strings=('-h' '--help' '--secure' '--no-secure')
|
||||||
_shtab_ahriman_repo_config_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_config_option_strings=('-h' '--help' '--secure' '--no-secure')
|
||||||
_shtab_ahriman_service_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
_shtab_ahriman_service_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
_shtab_ahriman_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
_shtab_ahriman_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
_shtab_ahriman_repo_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
_shtab_ahriman_repo_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
@ -139,33 +139,36 @@ _shtab_ahriman_version___help_nargs=0
|
|||||||
_shtab_ahriman_package_add_pos_0_nargs=+
|
_shtab_ahriman_package_add_pos_0_nargs=+
|
||||||
_shtab_ahriman_package_add__h_nargs=0
|
_shtab_ahriman_package_add__h_nargs=0
|
||||||
_shtab_ahriman_package_add___help_nargs=0
|
_shtab_ahriman_package_add___help_nargs=0
|
||||||
|
_shtab_ahriman_package_add___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_package_add___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_package_add__e_nargs=0
|
_shtab_ahriman_package_add__e_nargs=0
|
||||||
_shtab_ahriman_package_add___exit_code_nargs=0
|
_shtab_ahriman_package_add___exit_code_nargs=0
|
||||||
_shtab_ahriman_package_add__n_nargs=0
|
_shtab_ahriman_package_add__n_nargs=0
|
||||||
_shtab_ahriman_package_add___now_nargs=0
|
_shtab_ahriman_package_add___now_nargs=0
|
||||||
_shtab_ahriman_package_add__y_nargs=0
|
_shtab_ahriman_package_add__y_nargs=0
|
||||||
_shtab_ahriman_package_add___refresh_nargs=0
|
_shtab_ahriman_package_add___refresh_nargs=0
|
||||||
_shtab_ahriman_package_add___without_dependencies_nargs=0
|
|
||||||
_shtab_ahriman_add_pos_0_nargs=+
|
_shtab_ahriman_add_pos_0_nargs=+
|
||||||
_shtab_ahriman_add__h_nargs=0
|
_shtab_ahriman_add__h_nargs=0
|
||||||
_shtab_ahriman_add___help_nargs=0
|
_shtab_ahriman_add___help_nargs=0
|
||||||
|
_shtab_ahriman_add___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_add___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_add__e_nargs=0
|
_shtab_ahriman_add__e_nargs=0
|
||||||
_shtab_ahriman_add___exit_code_nargs=0
|
_shtab_ahriman_add___exit_code_nargs=0
|
||||||
_shtab_ahriman_add__n_nargs=0
|
_shtab_ahriman_add__n_nargs=0
|
||||||
_shtab_ahriman_add___now_nargs=0
|
_shtab_ahriman_add___now_nargs=0
|
||||||
_shtab_ahriman_add__y_nargs=0
|
_shtab_ahriman_add__y_nargs=0
|
||||||
_shtab_ahriman_add___refresh_nargs=0
|
_shtab_ahriman_add___refresh_nargs=0
|
||||||
_shtab_ahriman_add___without_dependencies_nargs=0
|
|
||||||
_shtab_ahriman_package_update_pos_0_nargs=+
|
_shtab_ahriman_package_update_pos_0_nargs=+
|
||||||
_shtab_ahriman_package_update__h_nargs=0
|
_shtab_ahriman_package_update__h_nargs=0
|
||||||
_shtab_ahriman_package_update___help_nargs=0
|
_shtab_ahriman_package_update___help_nargs=0
|
||||||
|
_shtab_ahriman_package_update___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_package_update___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_package_update__e_nargs=0
|
_shtab_ahriman_package_update__e_nargs=0
|
||||||
_shtab_ahriman_package_update___exit_code_nargs=0
|
_shtab_ahriman_package_update___exit_code_nargs=0
|
||||||
_shtab_ahriman_package_update__n_nargs=0
|
_shtab_ahriman_package_update__n_nargs=0
|
||||||
_shtab_ahriman_package_update___now_nargs=0
|
_shtab_ahriman_package_update___now_nargs=0
|
||||||
_shtab_ahriman_package_update__y_nargs=0
|
_shtab_ahriman_package_update__y_nargs=0
|
||||||
_shtab_ahriman_package_update___refresh_nargs=0
|
_shtab_ahriman_package_update___refresh_nargs=0
|
||||||
_shtab_ahriman_package_update___without_dependencies_nargs=0
|
|
||||||
_shtab_ahriman_package_remove_pos_0_nargs=+
|
_shtab_ahriman_package_remove_pos_0_nargs=+
|
||||||
_shtab_ahriman_package_remove__h_nargs=0
|
_shtab_ahriman_package_remove__h_nargs=0
|
||||||
_shtab_ahriman_package_remove___help_nargs=0
|
_shtab_ahriman_package_remove___help_nargs=0
|
||||||
@ -231,6 +234,8 @@ _shtab_ahriman_repo_daemon__h_nargs=0
|
|||||||
_shtab_ahriman_repo_daemon___help_nargs=0
|
_shtab_ahriman_repo_daemon___help_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___aur_nargs=0
|
_shtab_ahriman_repo_daemon___aur_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___no_aur_nargs=0
|
_shtab_ahriman_repo_daemon___no_aur_nargs=0
|
||||||
|
_shtab_ahriman_repo_daemon___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_repo_daemon___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___local_nargs=0
|
_shtab_ahriman_repo_daemon___local_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___no_local_nargs=0
|
_shtab_ahriman_repo_daemon___no_local_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___manual_nargs=0
|
_shtab_ahriman_repo_daemon___manual_nargs=0
|
||||||
@ -243,6 +248,8 @@ _shtab_ahriman_daemon__h_nargs=0
|
|||||||
_shtab_ahriman_daemon___help_nargs=0
|
_shtab_ahriman_daemon___help_nargs=0
|
||||||
_shtab_ahriman_daemon___aur_nargs=0
|
_shtab_ahriman_daemon___aur_nargs=0
|
||||||
_shtab_ahriman_daemon___no_aur_nargs=0
|
_shtab_ahriman_daemon___no_aur_nargs=0
|
||||||
|
_shtab_ahriman_daemon___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_daemon___local_nargs=0
|
_shtab_ahriman_daemon___local_nargs=0
|
||||||
_shtab_ahriman_daemon___no_local_nargs=0
|
_shtab_ahriman_daemon___no_local_nargs=0
|
||||||
_shtab_ahriman_daemon___manual_nargs=0
|
_shtab_ahriman_daemon___manual_nargs=0
|
||||||
@ -295,11 +302,13 @@ _shtab_ahriman_repo_triggers___help_nargs=0
|
|||||||
_shtab_ahriman_repo_update_pos_0_nargs=*
|
_shtab_ahriman_repo_update_pos_0_nargs=*
|
||||||
_shtab_ahriman_repo_update__h_nargs=0
|
_shtab_ahriman_repo_update__h_nargs=0
|
||||||
_shtab_ahriman_repo_update___help_nargs=0
|
_shtab_ahriman_repo_update___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_update___aur_nargs=0
|
||||||
|
_shtab_ahriman_repo_update___no_aur_nargs=0
|
||||||
|
_shtab_ahriman_repo_update___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_repo_update___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_repo_update___dry_run_nargs=0
|
_shtab_ahriman_repo_update___dry_run_nargs=0
|
||||||
_shtab_ahriman_repo_update__e_nargs=0
|
_shtab_ahriman_repo_update__e_nargs=0
|
||||||
_shtab_ahriman_repo_update___exit_code_nargs=0
|
_shtab_ahriman_repo_update___exit_code_nargs=0
|
||||||
_shtab_ahriman_repo_update___aur_nargs=0
|
|
||||||
_shtab_ahriman_repo_update___no_aur_nargs=0
|
|
||||||
_shtab_ahriman_repo_update___local_nargs=0
|
_shtab_ahriman_repo_update___local_nargs=0
|
||||||
_shtab_ahriman_repo_update___no_local_nargs=0
|
_shtab_ahriman_repo_update___no_local_nargs=0
|
||||||
_shtab_ahriman_repo_update___manual_nargs=0
|
_shtab_ahriman_repo_update___manual_nargs=0
|
||||||
@ -311,11 +320,13 @@ _shtab_ahriman_repo_update___refresh_nargs=0
|
|||||||
_shtab_ahriman_update_pos_0_nargs=*
|
_shtab_ahriman_update_pos_0_nargs=*
|
||||||
_shtab_ahriman_update__h_nargs=0
|
_shtab_ahriman_update__h_nargs=0
|
||||||
_shtab_ahriman_update___help_nargs=0
|
_shtab_ahriman_update___help_nargs=0
|
||||||
|
_shtab_ahriman_update___aur_nargs=0
|
||||||
|
_shtab_ahriman_update___no_aur_nargs=0
|
||||||
|
_shtab_ahriman_update___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_update___no_dependencies_nargs=0
|
||||||
_shtab_ahriman_update___dry_run_nargs=0
|
_shtab_ahriman_update___dry_run_nargs=0
|
||||||
_shtab_ahriman_update__e_nargs=0
|
_shtab_ahriman_update__e_nargs=0
|
||||||
_shtab_ahriman_update___exit_code_nargs=0
|
_shtab_ahriman_update___exit_code_nargs=0
|
||||||
_shtab_ahriman_update___aur_nargs=0
|
|
||||||
_shtab_ahriman_update___no_aur_nargs=0
|
|
||||||
_shtab_ahriman_update___local_nargs=0
|
_shtab_ahriman_update___local_nargs=0
|
||||||
_shtab_ahriman_update___no_local_nargs=0
|
_shtab_ahriman_update___no_local_nargs=0
|
||||||
_shtab_ahriman_update___manual_nargs=0
|
_shtab_ahriman_update___manual_nargs=0
|
||||||
@ -362,10 +373,16 @@ _shtab_ahriman_repo_clean___pacman_nargs=0
|
|||||||
_shtab_ahriman_repo_clean___no_pacman_nargs=0
|
_shtab_ahriman_repo_clean___no_pacman_nargs=0
|
||||||
_shtab_ahriman_service_config__h_nargs=0
|
_shtab_ahriman_service_config__h_nargs=0
|
||||||
_shtab_ahriman_service_config___help_nargs=0
|
_shtab_ahriman_service_config___help_nargs=0
|
||||||
|
_shtab_ahriman_service_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_service_config___no_secure_nargs=0
|
||||||
_shtab_ahriman_config__h_nargs=0
|
_shtab_ahriman_config__h_nargs=0
|
||||||
_shtab_ahriman_config___help_nargs=0
|
_shtab_ahriman_config___help_nargs=0
|
||||||
|
_shtab_ahriman_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_config___no_secure_nargs=0
|
||||||
_shtab_ahriman_repo_config__h_nargs=0
|
_shtab_ahriman_repo_config__h_nargs=0
|
||||||
_shtab_ahriman_repo_config___help_nargs=0
|
_shtab_ahriman_repo_config___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___no_secure_nargs=0
|
||||||
_shtab_ahriman_service_config_validate__h_nargs=0
|
_shtab_ahriman_service_config_validate__h_nargs=0
|
||||||
_shtab_ahriman_service_config_validate___help_nargs=0
|
_shtab_ahriman_service_config_validate___help_nargs=0
|
||||||
_shtab_ahriman_service_config_validate__e_nargs=0
|
_shtab_ahriman_service_config_validate__e_nargs=0
|
||||||
|
@ -87,11 +87,11 @@ _shtab_ahriman_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_add_options=(
|
_shtab_ahriman_add_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
||||||
{-n,--now}"[run update function after]"
|
{-n,--now}"[run update function after]"
|
||||||
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
||||||
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
||||||
"--without-dependencies[do not add dependencies]"
|
|
||||||
"(*):package source (base name, path to local files, remote URL):"
|
"(*):package source (base name, path to local files, remote URL):"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -122,6 +122,7 @@ _shtab_ahriman_clean_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_config_options=(
|
_shtab_ahriman_config_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--secure,--no-secure}"[hide passwords and secrets from output (default\: \%(default)s)]:secure:"
|
||||||
)
|
)
|
||||||
|
|
||||||
_shtab_ahriman_config_validate_options=(
|
_shtab_ahriman_config_validate_options=(
|
||||||
@ -133,6 +134,7 @@ _shtab_ahriman_daemon_options=(
|
|||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
{-i,--interval}"[interval between runs in seconds]:interval:"
|
{-i,--interval}"[interval between runs in seconds]:interval:"
|
||||||
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
||||||
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
||||||
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
||||||
@ -182,11 +184,11 @@ _shtab_ahriman_key_import_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_package_add_options=(
|
_shtab_ahriman_package_add_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
||||||
{-n,--now}"[run update function after]"
|
{-n,--now}"[run update function after]"
|
||||||
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
||||||
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
||||||
"--without-dependencies[do not add dependencies]"
|
|
||||||
"(*):package source (base name, path to local files, remote URL):"
|
"(*):package source (base name, path to local files, remote URL):"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -217,11 +219,11 @@ _shtab_ahriman_package_status_update_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_package_update_options=(
|
_shtab_ahriman_package_update_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
||||||
{-n,--now}"[run update function after]"
|
{-n,--now}"[run update function after]"
|
||||||
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
"*"{-y,--refresh}"[download fresh package databases from the mirror before actions, -yy to force refresh even if up to date]"
|
||||||
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
{-s,--source}"[explicitly specify the package source for this command]:source:(auto archive aur directory local remote repository)"
|
||||||
"--without-dependencies[do not add dependencies]"
|
|
||||||
"(*):package source (base name, path to local files, remote URL):"
|
"(*):package source (base name, path to local files, remote URL):"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -293,6 +295,7 @@ _shtab_ahriman_repo_clean_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_repo_config_options=(
|
_shtab_ahriman_repo_config_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--secure,--no-secure}"[hide passwords and secrets from output (default\: \%(default)s)]:secure:"
|
||||||
)
|
)
|
||||||
|
|
||||||
_shtab_ahriman_repo_config_validate_options=(
|
_shtab_ahriman_repo_config_validate_options=(
|
||||||
@ -304,6 +307,7 @@ _shtab_ahriman_repo_daemon_options=(
|
|||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
{-i,--interval}"[interval between runs in seconds]:interval:"
|
{-i,--interval}"[interval between runs in seconds]:interval:"
|
||||||
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
||||||
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
||||||
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
||||||
@ -390,9 +394,10 @@ _shtab_ahriman_repo_triggers_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_repo_update_options=(
|
_shtab_ahriman_repo_update_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
"--dry-run[just perform check for updates, same as check command]"
|
"--dry-run[just perform check for updates, same as check command]"
|
||||||
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
||||||
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
|
||||||
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
||||||
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
||||||
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
||||||
@ -423,6 +428,7 @@ _shtab_ahriman_service_clean_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_service_config_options=(
|
_shtab_ahriman_service_config_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--secure,--no-secure}"[hide passwords and secrets from output (default\: \%(default)s)]:secure:"
|
||||||
)
|
)
|
||||||
|
|
||||||
_shtab_ahriman_service_config_validate_options=(
|
_shtab_ahriman_service_config_validate_options=(
|
||||||
@ -504,9 +510,10 @@ _shtab_ahriman_sync_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_update_options=(
|
_shtab_ahriman_update_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
||||||
|
{--dependencies,--no-dependencies}"[process missing package dependencies (default\: \%(default)s)]:dependencies:"
|
||||||
"--dry-run[just perform check for updates, same as check command]"
|
"--dry-run[just perform check for updates, same as check command]"
|
||||||
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
{-e,--exit-code}"[return non-zero exit status if result is empty]"
|
||||||
{--aur,--no-aur}"[enable or disable checking for AUR updates (default\: \%(default)s)]:aur:"
|
|
||||||
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
{--local,--no-local}"[enable or disable checking of local packages for updates (default\: \%(default)s)]:local:"
|
||||||
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
{--manual,--no-manual}"[include or exclude manual updates (default\: \%(default)s)]:manual:"
|
||||||
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
{--vcs,--no-vcs}"[fetch actual version of VCS packages (default\: \%(default)s)]:vcs:"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Evgeniy Alekseev
|
# Maintainer: Evgeniy Alekseev
|
||||||
|
|
||||||
pkgname='ahriman'
|
pkgname='ahriman'
|
||||||
pkgver=2.6.1
|
pkgver=2.7.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="ArcH linux ReposItory MANager"
|
pkgdesc="ArcH linux ReposItory MANager"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
|
@ -245,6 +245,8 @@ def _set_package_add_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
"5) and finally you can add package from AUR.",
|
"5) and finally you can add package from AUR.",
|
||||||
formatter_class=_formatter)
|
formatter_class=_formatter)
|
||||||
parser.add_argument("package", help="package source (base name, path to local files, remote URL)", nargs="+")
|
parser.add_argument("package", help="package source (base name, path to local files, remote URL)", nargs="+")
|
||||||
|
parser.add_argument("--dependencies", help="process missing package dependencies",
|
||||||
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
||||||
parser.add_argument("-n", "--now", help="run update function after", action="store_true")
|
parser.add_argument("-n", "--now", help="run update function after", action="store_true")
|
||||||
parser.add_argument("-y", "--refresh", help="download fresh package databases from the mirror before actions, "
|
parser.add_argument("-y", "--refresh", help="download fresh package databases from the mirror before actions, "
|
||||||
@ -252,7 +254,6 @@ def _set_package_add_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
action="count", default=False)
|
action="count", default=False)
|
||||||
parser.add_argument("-s", "--source", help="explicitly specify the package source for this command",
|
parser.add_argument("-s", "--source", help="explicitly specify the package source for this command",
|
||||||
type=PackageSource, choices=enum_values(PackageSource), default=PackageSource.Auto)
|
type=PackageSource, choices=enum_values(PackageSource), default=PackageSource.Auto)
|
||||||
parser.add_argument("--without-dependencies", help="do not add dependencies", action="store_true")
|
|
||||||
parser.set_defaults(handler=handlers.Add)
|
parser.set_defaults(handler=handlers.Add)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
@ -472,7 +473,7 @@ def _set_repo_check_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
parser.add_argument("-y", "--refresh", help="download fresh package databases from the mirror before actions, "
|
parser.add_argument("-y", "--refresh", help="download fresh package databases from the mirror before actions, "
|
||||||
"-yy to force refresh even if up to date",
|
"-yy to force refresh even if up to date",
|
||||||
action="count", default=False)
|
action="count", default=False)
|
||||||
parser.set_defaults(handler=handlers.Update, dry_run=True, aur=True, local=True, manual=False)
|
parser.set_defaults(handler=handlers.Update, dependencies=False, dry_run=True, aur=True, local=True, manual=False)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
@ -492,6 +493,8 @@ def _set_repo_daemon_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
parser.add_argument("-i", "--interval", help="interval between runs in seconds", type=int, default=60 * 60 * 12)
|
parser.add_argument("-i", "--interval", help="interval between runs in seconds", type=int, default=60 * 60 * 12)
|
||||||
parser.add_argument("--aur", help="enable or disable checking for AUR updates",
|
parser.add_argument("--aur", help="enable or disable checking for AUR updates",
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
|
parser.add_argument("--dependencies", help="process missing package dependencies",
|
||||||
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("--local", help="enable or disable checking of local packages for updates",
|
parser.add_argument("--local", help="enable or disable checking of local packages for updates",
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("--manual", help="include or exclude manual updates",
|
parser.add_argument("--manual", help="include or exclude manual updates",
|
||||||
@ -691,10 +694,12 @@ def _set_repo_update_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
description="check for packages updates and run build process if requested",
|
description="check for packages updates and run build process if requested",
|
||||||
formatter_class=_formatter)
|
formatter_class=_formatter)
|
||||||
parser.add_argument("package", help="filter check by package base", nargs="*")
|
parser.add_argument("package", help="filter check by package base", nargs="*")
|
||||||
parser.add_argument("--dry-run", help="just perform check for updates, same as check command", action="store_true")
|
|
||||||
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
|
||||||
parser.add_argument("--aur", help="enable or disable checking for AUR updates",
|
parser.add_argument("--aur", help="enable or disable checking for AUR updates",
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
|
parser.add_argument("--dependencies", help="process missing package dependencies",
|
||||||
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
|
parser.add_argument("--dry-run", help="just perform check for updates, same as check command", action="store_true")
|
||||||
|
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
||||||
parser.add_argument("--local", help="enable or disable checking of local packages for updates",
|
parser.add_argument("--local", help="enable or disable checking of local packages for updates",
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("--manual", help="include or exclude manual updates",
|
parser.add_argument("--manual", help="include or exclude manual updates",
|
||||||
@ -750,6 +755,8 @@ def _set_service_config_parser(root: SubParserAction) -> argparse.ArgumentParser
|
|||||||
parser = root.add_parser("service-config", aliases=["config", "repo-config"], help="dump configuration",
|
parser = root.add_parser("service-config", aliases=["config", "repo-config"], help="dump configuration",
|
||||||
description="dump configuration for the specified architecture",
|
description="dump configuration for the specified architecture",
|
||||||
formatter_class=_formatter)
|
formatter_class=_formatter)
|
||||||
|
parser.add_argument("--secure", help="hide passwords and secrets from output",
|
||||||
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.set_defaults(handler=handlers.Dump, lock=None, report=False, quiet=True, unsafe=True)
|
parser.set_defaults(handler=handlers.Dump, lock=None, report=False, quiet=True, unsafe=True)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
@ -17,10 +17,11 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
from typing import Set
|
from typing import Iterable, List, Set
|
||||||
|
|
||||||
from ahriman.application.application.application_packages import ApplicationPackages
|
from ahriman.application.application.application_packages import ApplicationPackages
|
||||||
from ahriman.application.application.application_repository import ApplicationRepository
|
from ahriman.application.application.application_repository import ApplicationRepository
|
||||||
|
from ahriman.models.package import Package
|
||||||
from ahriman.models.result import Result
|
from ahriman.models.result import Result
|
||||||
|
|
||||||
|
|
||||||
@ -87,3 +88,39 @@ class Application(ApplicationPackages, ApplicationRepository):
|
|||||||
directly as it will be called after on_start action
|
directly as it will be called after on_start action
|
||||||
"""
|
"""
|
||||||
self.repository.triggers.on_stop()
|
self.repository.triggers.on_stop()
|
||||||
|
|
||||||
|
def with_dependencies(self, packages: List[Package], *, process_dependencies: bool) -> List[Package]:
|
||||||
|
"""
|
||||||
|
add missing dependencies to list of packages
|
||||||
|
|
||||||
|
Args:
|
||||||
|
packages(List[Package]): list of source packages of which dependencies have to be processed
|
||||||
|
process_dependencies(bool): if no set, dependencies will not be processed
|
||||||
|
"""
|
||||||
|
def missing_dependencies(source: Iterable[Package]) -> Set[str]:
|
||||||
|
# build initial list of dependencies
|
||||||
|
result = set()
|
||||||
|
for package in source:
|
||||||
|
result.update(package.depends_build)
|
||||||
|
|
||||||
|
# remove ones which are already well-known
|
||||||
|
result = result.difference(known_packages)
|
||||||
|
|
||||||
|
# remove ones which are in this list already
|
||||||
|
for package in source:
|
||||||
|
result = result.difference(package.packages_full)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
if not process_dependencies or not packages:
|
||||||
|
return packages
|
||||||
|
|
||||||
|
known_packages = self._known_packages()
|
||||||
|
with_dependencies = {package.base: package for package in packages}
|
||||||
|
|
||||||
|
while missing := missing_dependencies(with_dependencies.values()):
|
||||||
|
for package_name in missing:
|
||||||
|
package = Package.from_aur(package_name, self.repository.pacman)
|
||||||
|
with_dependencies[package.base] = package
|
||||||
|
|
||||||
|
return list(with_dependencies.values())
|
||||||
|
@ -21,7 +21,7 @@ import requests
|
|||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Iterable, Set
|
from typing import Any, Iterable
|
||||||
|
|
||||||
from ahriman.application.application.application_properties import ApplicationProperties
|
from ahriman.application.application.application_properties import ApplicationProperties
|
||||||
from ahriman.core.build_tools.sources import Sources
|
from ahriman.core.build_tools.sources import Sources
|
||||||
@ -47,22 +47,18 @@ class ApplicationPackages(ApplicationProperties):
|
|||||||
dst = self.repository.paths.packages / local_path.name
|
dst = self.repository.paths.packages / local_path.name
|
||||||
shutil.copy(local_path, dst)
|
shutil.copy(local_path, dst)
|
||||||
|
|
||||||
def _add_aur(self, source: str, known_packages: Set[str], without_dependencies: bool) -> None:
|
def _add_aur(self, source: str) -> None:
|
||||||
"""
|
"""
|
||||||
add package from AUR
|
add package from AUR
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
source(str): package base name
|
source(str): package base name
|
||||||
known_packages(Set[str]): list of packages which are known by the service
|
|
||||||
without_dependencies(bool): if set, dependency check will be disabled
|
|
||||||
"""
|
"""
|
||||||
package = Package.from_aur(source, self.repository.pacman)
|
package = Package.from_aur(source, self.repository.pacman)
|
||||||
|
|
||||||
self.database.build_queue_insert(package)
|
self.database.build_queue_insert(package)
|
||||||
self.database.remote_update(package)
|
self.database.remote_update(package)
|
||||||
|
|
||||||
self._process_dependencies(package, known_packages, without_dependencies)
|
|
||||||
|
|
||||||
def _add_directory(self, source: str, *_: Any) -> None:
|
def _add_directory(self, source: str, *_: Any) -> None:
|
||||||
"""
|
"""
|
||||||
add packages from directory
|
add packages from directory
|
||||||
@ -74,14 +70,12 @@ class ApplicationPackages(ApplicationProperties):
|
|||||||
for full_path in filter(package_like, local_dir.iterdir()):
|
for full_path in filter(package_like, local_dir.iterdir()):
|
||||||
self._add_archive(str(full_path))
|
self._add_archive(str(full_path))
|
||||||
|
|
||||||
def _add_local(self, source: str, known_packages: Set[str], without_dependencies: bool) -> None:
|
def _add_local(self, source: str) -> None:
|
||||||
"""
|
"""
|
||||||
add package from local PKGBUILDs
|
add package from local PKGBUILDs
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
source(str): path to directory with local source files
|
source(str): path to directory with local source files
|
||||||
known_packages(Set[str]): list of packages which are known by the service
|
|
||||||
without_dependencies(bool): if set, dependency check will be disabled
|
|
||||||
"""
|
"""
|
||||||
source_dir = Path(source)
|
source_dir = Path(source)
|
||||||
package = Package.from_build(source_dir, self.architecture)
|
package = Package.from_build(source_dir, self.architecture)
|
||||||
@ -91,8 +85,6 @@ class ApplicationPackages(ApplicationProperties):
|
|||||||
|
|
||||||
self.database.build_queue_insert(package)
|
self.database.build_queue_insert(package)
|
||||||
|
|
||||||
self._process_dependencies(package, known_packages, without_dependencies)
|
|
||||||
|
|
||||||
def _add_remote(self, source: str, *_: Any) -> None:
|
def _add_remote(self, source: str, *_: Any) -> None:
|
||||||
"""
|
"""
|
||||||
add package from remote sources (e.g. HTTP)
|
add package from remote sources (e.g. HTTP)
|
||||||
@ -118,50 +110,19 @@ class ApplicationPackages(ApplicationProperties):
|
|||||||
package = Package.from_official(source, self.repository.pacman)
|
package = Package.from_official(source, self.repository.pacman)
|
||||||
self.database.build_queue_insert(package)
|
self.database.build_queue_insert(package)
|
||||||
self.database.remote_update(package)
|
self.database.remote_update(package)
|
||||||
# repository packages must not depend on unknown packages, thus we are not going to process dependencies
|
|
||||||
|
|
||||||
def _known_packages(self) -> Set[str]:
|
def add(self, names: Iterable[str], source: PackageSource) -> None:
|
||||||
"""
|
|
||||||
load packages from repository and pacman repositories
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Set[str]: list of known packages
|
|
||||||
|
|
||||||
Raises:
|
|
||||||
NotImplementedError: not implemented method
|
|
||||||
"""
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def _process_dependencies(self, package: Package, known_packages: Set[str], without_dependencies: bool) -> None:
|
|
||||||
"""
|
|
||||||
process package dependencies
|
|
||||||
|
|
||||||
Args:
|
|
||||||
package(Package): source package of which dependencies have to be processed
|
|
||||||
known_packages(Set[str]): list of packages which are known by the service
|
|
||||||
without_dependencies(bool): if set, dependency check will be disabled
|
|
||||||
"""
|
|
||||||
if without_dependencies:
|
|
||||||
return
|
|
||||||
|
|
||||||
dependencies = package.depends_build
|
|
||||||
self.add(dependencies.difference(known_packages), PackageSource.AUR, without_dependencies)
|
|
||||||
|
|
||||||
def add(self, names: Iterable[str], source: PackageSource, without_dependencies: bool) -> None:
|
|
||||||
"""
|
"""
|
||||||
add packages for the next build
|
add packages for the next build
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
names(Iterable[str]): list of package bases to add
|
names(Iterable[str]): list of package bases to add
|
||||||
source(PackageSource): package source to add
|
source(PackageSource): package source to add
|
||||||
without_dependencies(bool): if set, dependency check will be disabled
|
|
||||||
"""
|
"""
|
||||||
known_packages = self._known_packages() # speedup dependencies processing
|
|
||||||
|
|
||||||
for name in names:
|
for name in names:
|
||||||
resolved_source = source.resolve(name)
|
resolved_source = source.resolve(name)
|
||||||
fn = getattr(self, f"_add_{resolved_source.value}")
|
fn = getattr(self, f"_add_{resolved_source.value}")
|
||||||
fn(name, known_packages, without_dependencies)
|
fn(name)
|
||||||
|
|
||||||
def on_result(self, result: Result) -> None:
|
def on_result(self, result: Result) -> None:
|
||||||
"""
|
"""
|
||||||
|
@ -47,11 +47,12 @@ class Add(Handler):
|
|||||||
application = Application(architecture, configuration,
|
application = Application(architecture, configuration,
|
||||||
report=report, unsafe=unsafe, refresh_pacman_database=args.refresh)
|
report=report, unsafe=unsafe, refresh_pacman_database=args.refresh)
|
||||||
application.on_start()
|
application.on_start()
|
||||||
application.add(args.package, args.source, args.without_dependencies)
|
application.add(args.package, args.source)
|
||||||
if not args.now:
|
if not args.now:
|
||||||
return
|
return
|
||||||
|
|
||||||
packages = application.updates(args.package, aur=False, local=False, manual=True, vcs=False,
|
packages = application.updates(args.package, aur=False, local=False, manual=True, vcs=False,
|
||||||
log_fn=application.logger.info)
|
log_fn=application.logger.info)
|
||||||
|
packages = application.with_dependencies(packages, process_dependencies=args.dependencies)
|
||||||
result = application.update(packages)
|
result = application.update(packages)
|
||||||
Add.check_if_empty(args.exit_code, result.is_empty)
|
Add.check_if_empty(args.exit_code, result.is_empty)
|
||||||
|
@ -48,4 +48,4 @@ class Dump(Handler):
|
|||||||
"""
|
"""
|
||||||
dump = configuration.dump()
|
dump = configuration.dump()
|
||||||
for section, values in sorted(dump.items()):
|
for section, values in sorted(dump.items()):
|
||||||
ConfigurationPrinter(section, values).print(verbose=False, separator=" = ")
|
ConfigurationPrinter(section, values).print(verbose=not args.secure, separator=" = ")
|
||||||
|
@ -40,7 +40,7 @@ class Search(Handler):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
ALLOW_AUTO_ARCHITECTURE_RUN = False # it should be called only as "no-architecture"
|
ALLOW_AUTO_ARCHITECTURE_RUN = False # it should be called only as "no-architecture"
|
||||||
SORT_FIELDS = {field.name for field in fields(AURPackage) if field.default_factory is not list}
|
SORT_FIELDS = {field.name for field in fields(AURPackage) if field.default_factory is not list} # type: ignore
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def run(cls: Type[Handler], args: argparse.Namespace, architecture: str, configuration: Configuration, *,
|
def run(cls: Type[Handler], args: argparse.Namespace, architecture: str, configuration: Configuration, *,
|
||||||
|
@ -53,6 +53,7 @@ class Update(Handler):
|
|||||||
if args.dry_run:
|
if args.dry_run:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
packages = application.with_dependencies(packages, process_dependencies=args.dependencies)
|
||||||
result = application.update(packages)
|
result = application.update(packages)
|
||||||
Update.check_if_empty(args.exit_code, result.is_empty)
|
Update.check_if_empty(args.exit_code, result.is_empty)
|
||||||
|
|
||||||
|
@ -114,19 +114,19 @@ def migrate_package_statuses(connection: Connection, paths: RepositoryPaths) ->
|
|||||||
values
|
values
|
||||||
(:package_base, :version, :aur_url)
|
(:package_base, :version, :aur_url)
|
||||||
""",
|
""",
|
||||||
dict(package_base=metadata.base, version=metadata.version, aur_url=""))
|
{"package_base": metadata.base, "version": metadata.version, "aur_url": ""})
|
||||||
connection.execute(
|
connection.execute(
|
||||||
"""
|
"""
|
||||||
insert into package_statuses
|
insert into package_statuses
|
||||||
(package_base, status, last_updated)
|
(package_base, status, last_updated)
|
||||||
values
|
values
|
||||||
(:package_base, :status, :last_updated)""",
|
(:package_base, :status, :last_updated)""",
|
||||||
dict(package_base=metadata.base, status=last_status.status.value, last_updated=last_status.timestamp))
|
{"package_base": metadata.base, "status": last_status.status.value, "last_updated": last_status.timestamp})
|
||||||
|
|
||||||
def insert_packages(metadata: Package) -> None:
|
def insert_packages(metadata: Package) -> None:
|
||||||
package_list = []
|
package_list = []
|
||||||
for name, description in metadata.packages.items():
|
for name, description in metadata.packages.items():
|
||||||
package_list.append(dict(package=name, package_base=metadata.base, **description.view()))
|
package_list.append({"package": name, "package_base": metadata.base, **description.view()})
|
||||||
connection.executemany(
|
connection.executemany(
|
||||||
"""
|
"""
|
||||||
insert into packages
|
insert into packages
|
||||||
|
@ -80,11 +80,11 @@ def migrate_package_remotes(connection: Connection, paths: RepositoryPaths) -> N
|
|||||||
web_url = :web_url, source = :source
|
web_url = :web_url, source = :source
|
||||||
where package_base = :package_base
|
where package_base = :package_base
|
||||||
""",
|
""",
|
||||||
dict(
|
{
|
||||||
package_base=base,
|
"package_base": base,
|
||||||
branch=remote.branch, git_url=remote.git_url, path=remote.path,
|
"branch": remote.branch, "git_url": remote.git_url, "path": remote.path,
|
||||||
web_url=remote.web_url, source=remote.source
|
"web_url": remote.web_url, "source": remote.source
|
||||||
)
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
packages = PackageOperations._packages_get_select_package_bases(connection)
|
packages = PackageOperations._packages_get_select_package_bases(connection)
|
||||||
|
@ -71,12 +71,12 @@ class LogsOperations(Operations):
|
|||||||
values
|
values
|
||||||
(:package_base, :process_id, :created, :record)
|
(:package_base, :process_id, :created, :record)
|
||||||
""",
|
""",
|
||||||
dict(
|
{
|
||||||
package_base=log_record_id.package_base,
|
"package_base": log_record_id.package_base,
|
||||||
process_id=log_record_id.process_id,
|
"process_id": log_record_id.process_id,
|
||||||
created=created,
|
"created": created,
|
||||||
record=record
|
"record": record,
|
||||||
)
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return self.with_connection(run, commit=True)
|
return self.with_connection(run, commit=True)
|
||||||
|
@ -82,15 +82,15 @@ class PackageOperations(Operations):
|
|||||||
on conflict (package_base) do update set
|
on conflict (package_base) do update set
|
||||||
version = :version, branch = :branch, git_url = :git_url, path = :path, web_url = :web_url, source = :source
|
version = :version, branch = :branch, git_url = :git_url, path = :path, web_url = :web_url, source = :source
|
||||||
""",
|
""",
|
||||||
dict(
|
{
|
||||||
package_base=package.base,
|
"package_base": package.base,
|
||||||
version=package.version,
|
"version": package.version,
|
||||||
branch=package.remote.branch if package.remote is not None else None,
|
"branch": package.remote.branch if package.remote is not None else None,
|
||||||
git_url=package.remote.git_url if package.remote is not None else None,
|
"git_url": package.remote.git_url if package.remote is not None else None,
|
||||||
path=package.remote.path if package.remote is not None else None,
|
"path": package.remote.path if package.remote is not None else None,
|
||||||
web_url=package.remote.web_url if package.remote is not None else None,
|
"web_url": package.remote.web_url if package.remote is not None else None,
|
||||||
source=package.remote.source.value if package.remote is not None else None,
|
"source": package.remote.source.value if package.remote is not None else None,
|
||||||
)
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -106,7 +106,7 @@ class PackageOperations(Operations):
|
|||||||
for name, description in package.packages.items():
|
for name, description in package.packages.items():
|
||||||
if description.architecture is None:
|
if description.architecture is None:
|
||||||
continue # architecture is required
|
continue # architecture is required
|
||||||
package_list.append(dict(package=name, package_base=package.base, **description.view()))
|
package_list.append({"package": name, "package_base": package.base, **description.view()})
|
||||||
connection.executemany(
|
connection.executemany(
|
||||||
"""
|
"""
|
||||||
insert into packages
|
insert into packages
|
||||||
@ -145,7 +145,7 @@ class PackageOperations(Operations):
|
|||||||
on conflict (package_base) do update set
|
on conflict (package_base) do update set
|
||||||
status = :status, last_updated = :last_updated
|
status = :status, last_updated = :last_updated
|
||||||
""",
|
""",
|
||||||
dict(package_base=package_base, status=status.status.value, last_updated=status.timestamp))
|
{"package_base": package_base, "status": status.status.value, "last_updated": status.timestamp})
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _packages_get_select_package_bases(connection: Connection) -> Dict[str, Package]:
|
def _packages_get_select_package_bases(connection: Connection) -> Dict[str, Package]:
|
||||||
|
@ -28,9 +28,18 @@ class ConfigurationPrinter(StringPrinter):
|
|||||||
print content of the configuration section
|
print content of the configuration section
|
||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
|
HIDE_KEYS(List[str]): (class attribute) hide values for mentioned keys. This list must be used in order to hide
|
||||||
|
passwords from outputs
|
||||||
values(Dict[str, str]): configuration values dictionary
|
values(Dict[str, str]): configuration values dictionary
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
HIDE_KEYS = [
|
||||||
|
"api_key", # telegram key
|
||||||
|
"client_secret", # oauth secret
|
||||||
|
"password", # generic password (github, email, web server, etc)
|
||||||
|
"secret_key", # aws secret key
|
||||||
|
]
|
||||||
|
|
||||||
def __init__(self, section: str, values: Dict[str, str]) -> None:
|
def __init__(self, section: str, values: Dict[str, str]) -> None:
|
||||||
"""
|
"""
|
||||||
default constructor
|
default constructor
|
||||||
@ -50,6 +59,6 @@ class ConfigurationPrinter(StringPrinter):
|
|||||||
List[Property]: list of content properties
|
List[Property]: list of content properties
|
||||||
"""
|
"""
|
||||||
return [
|
return [
|
||||||
Property(key, value, is_required=True)
|
Property(key, value, is_required=key not in self.HIDE_KEYS)
|
||||||
for key, value in sorted(self.values.items())
|
for key, value in sorted(self.values.items())
|
||||||
]
|
]
|
||||||
|
@ -82,7 +82,10 @@ class RemotePush(LazyLogging):
|
|||||||
Sources.fetch(package_target_dir, package.remote)
|
Sources.fetch(package_target_dir, package.remote)
|
||||||
# ...and last, but not least, we remove the dot-git directory...
|
# ...and last, but not least, we remove the dot-git directory...
|
||||||
for git_file in package_target_dir.glob(".git*"):
|
for git_file in package_target_dir.glob(".git*"):
|
||||||
shutil.rmtree(package_target_dir / git_file)
|
if git_file.is_file():
|
||||||
|
git_file.unlink()
|
||||||
|
else:
|
||||||
|
shutil.rmtree(git_file)
|
||||||
# ...copy all patches...
|
# ...copy all patches...
|
||||||
for patch in self.database.patches_get(package.base):
|
for patch in self.database.patches_get(package.base):
|
||||||
filename = f"ahriman-{package.base}.patch" if patch.key is None else f"ahriman-{patch.key}.patch"
|
filename = f"ahriman-{package.base}.patch" if patch.key is None else f"ahriman-{patch.key}.patch"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# pylint: disable=too-many-lines
|
# pylint: disable=too-many-lines,too-many-public-methods
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
@ -96,7 +96,7 @@ class Package(LazyLogging):
|
|||||||
Returns:
|
Returns:
|
||||||
Set[str]: full dependencies list used by devtools
|
Set[str]: full dependencies list used by devtools
|
||||||
"""
|
"""
|
||||||
return (set(self.depends) | set(self.depends_make)) - self.packages.keys()
|
return (set(self.depends) | set(self.depends_make)).difference(self.packages_full)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def depends_make(self) -> List[str]:
|
def depends_make(self) -> List[str]:
|
||||||
@ -163,6 +163,20 @@ class Package(LazyLogging):
|
|||||||
"""
|
"""
|
||||||
return sorted(set(sum((package.licenses for package in self.packages.values()), start=[])))
|
return sorted(set(sum((package.licenses for package in self.packages.values()), start=[])))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def packages_full(self) -> List[str]:
|
||||||
|
"""
|
||||||
|
get full packages list including provides
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List[str]: full list of packages which this base contains
|
||||||
|
"""
|
||||||
|
packages = set()
|
||||||
|
for package, properties in self.packages.items():
|
||||||
|
packages.add(package)
|
||||||
|
packages.update(properties.provides)
|
||||||
|
return sorted(packages)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_archive(cls: Type[Package], path: Path, pacman: Pacman, remote: Optional[RemoteSource]) -> Package:
|
def from_archive(cls: Type[Package], path: Path, pacman: Pacman, remote: Optional[RemoteSource]) -> Package:
|
||||||
"""
|
"""
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
__version__ = "2.6.1"
|
__version__ = "2.7.0"
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from pytest_mock import MockerFixture
|
from pytest_mock import MockerFixture
|
||||||
|
from unittest.mock import MagicMock, call as MockCall
|
||||||
|
|
||||||
from ahriman.application.application import Application
|
from ahriman.application.application import Application
|
||||||
from ahriman.models.package import Package
|
from ahriman.models.package import Package
|
||||||
@ -44,3 +45,55 @@ def test_on_stop(application: Application, mocker: MockerFixture) -> None:
|
|||||||
|
|
||||||
application.on_stop()
|
application.on_stop()
|
||||||
triggers_mock.assert_called_once_with()
|
triggers_mock.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
|
def test_with_dependencies(application: Application, package_ahriman: Package, package_python_schedule: Package,
|
||||||
|
mocker: MockerFixture) -> None:
|
||||||
|
"""
|
||||||
|
must append list of missing dependencies
|
||||||
|
"""
|
||||||
|
def create_package_mock(package_base) -> MagicMock:
|
||||||
|
mock = MagicMock()
|
||||||
|
mock.base = package_base
|
||||||
|
mock.depends_build = []
|
||||||
|
mock.packages_full = [package_base]
|
||||||
|
return mock
|
||||||
|
|
||||||
|
package_python_schedule.packages = {
|
||||||
|
package_python_schedule.base: package_python_schedule.packages[package_python_schedule.base]
|
||||||
|
}
|
||||||
|
package_ahriman.packages[package_ahriman.base].depends = ["devtools", "python", package_python_schedule.base]
|
||||||
|
package_ahriman.packages[package_ahriman.base].make_depends = ["python-build", "python-installer"]
|
||||||
|
|
||||||
|
packages = {
|
||||||
|
package_ahriman.base: package_ahriman,
|
||||||
|
package_python_schedule.base: package_python_schedule,
|
||||||
|
"python": create_package_mock("python"),
|
||||||
|
"python-installer": create_package_mock("python-installer"),
|
||||||
|
}
|
||||||
|
|
||||||
|
package_mock = mocker.patch("ahriman.models.package.Package.from_aur", side_effect=lambda p, _: packages[p])
|
||||||
|
packages_mock = mocker.patch("ahriman.application.application.Application._known_packages",
|
||||||
|
return_value=["devtools", "python-build"])
|
||||||
|
|
||||||
|
result = application.with_dependencies([package_ahriman], process_dependencies=True)
|
||||||
|
assert {package.base: package for package in result} == packages
|
||||||
|
package_mock.assert_has_calls([
|
||||||
|
MockCall(package_python_schedule.base, application.repository.pacman),
|
||||||
|
MockCall("python", application.repository.pacman),
|
||||||
|
MockCall("python-installer", application.repository.pacman),
|
||||||
|
], any_order=True)
|
||||||
|
packages_mock.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
|
def test_with_dependencies_skip(application: Application, package_ahriman: Package, mocker: MockerFixture) -> None:
|
||||||
|
"""
|
||||||
|
must skip processing of dependencies
|
||||||
|
"""
|
||||||
|
packages_mock = mocker.patch("ahriman.application.application.Application._known_packages")
|
||||||
|
|
||||||
|
assert application.with_dependencies([package_ahriman], process_dependencies=False) == [package_ahriman]
|
||||||
|
packages_mock.assert_not_called()
|
||||||
|
|
||||||
|
assert application.with_dependencies([], process_dependencies=True) == []
|
||||||
|
packages_mock.assert_not_called()
|
||||||
|
@ -29,13 +29,10 @@ def test_add_aur(application_packages: ApplicationPackages, package_ahriman: Pac
|
|||||||
must add package from AUR
|
must add package from AUR
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.models.package.Package.from_aur", return_value=package_ahriman)
|
mocker.patch("ahriman.models.package.Package.from_aur", return_value=package_ahriman)
|
||||||
dependencies_mock = mocker.patch(
|
|
||||||
"ahriman.application.application.application_packages.ApplicationPackages._process_dependencies")
|
|
||||||
build_queue_mock = mocker.patch("ahriman.core.database.SQLite.build_queue_insert")
|
build_queue_mock = mocker.patch("ahriman.core.database.SQLite.build_queue_insert")
|
||||||
update_remote_mock = mocker.patch("ahriman.core.database.SQLite.remote_update")
|
update_remote_mock = mocker.patch("ahriman.core.database.SQLite.remote_update")
|
||||||
|
|
||||||
application_packages._add_aur(package_ahriman.base, set(), False)
|
application_packages._add_aur(package_ahriman.base)
|
||||||
dependencies_mock.assert_called_once_with(pytest.helpers.anyvar(int), set(), False)
|
|
||||||
build_queue_mock.assert_called_once_with(package_ahriman)
|
build_queue_mock.assert_called_once_with(package_ahriman)
|
||||||
update_remote_mock.assert_called_once_with(package_ahriman)
|
update_remote_mock.assert_called_once_with(package_ahriman)
|
||||||
|
|
||||||
@ -64,15 +61,12 @@ def test_add_local(application_packages: ApplicationPackages, package_ahriman: P
|
|||||||
mocker.patch("ahriman.models.package.Package.from_build", return_value=package_ahriman)
|
mocker.patch("ahriman.models.package.Package.from_build", return_value=package_ahriman)
|
||||||
init_mock = mocker.patch("ahriman.core.build_tools.sources.Sources.init")
|
init_mock = mocker.patch("ahriman.core.build_tools.sources.Sources.init")
|
||||||
copytree_mock = mocker.patch("shutil.copytree")
|
copytree_mock = mocker.patch("shutil.copytree")
|
||||||
dependencies_mock = mocker.patch(
|
|
||||||
"ahriman.application.application.application_packages.ApplicationPackages._process_dependencies")
|
|
||||||
build_queue_mock = mocker.patch("ahriman.core.database.SQLite.build_queue_insert")
|
build_queue_mock = mocker.patch("ahriman.core.database.SQLite.build_queue_insert")
|
||||||
|
|
||||||
application_packages._add_local(package_ahriman.base, set(), False)
|
application_packages._add_local(package_ahriman.base)
|
||||||
copytree_mock.assert_called_once_with(
|
copytree_mock.assert_called_once_with(
|
||||||
Path(package_ahriman.base), application_packages.repository.paths.cache_for(package_ahriman.base))
|
Path(package_ahriman.base), application_packages.repository.paths.cache_for(package_ahriman.base))
|
||||||
init_mock.assert_called_once_with(application_packages.repository.paths.cache_for(package_ahriman.base))
|
init_mock.assert_called_once_with(application_packages.repository.paths.cache_for(package_ahriman.base))
|
||||||
dependencies_mock.assert_called_once_with(pytest.helpers.anyvar(int), set(), False)
|
|
||||||
build_queue_mock.assert_called_once_with(package_ahriman)
|
build_queue_mock.assert_called_once_with(package_ahriman)
|
||||||
|
|
||||||
|
|
||||||
@ -107,59 +101,15 @@ def test_add_repository(application_packages: ApplicationPackages, package_ahrim
|
|||||||
update_remote_mock.assert_called_once_with(package_ahriman)
|
update_remote_mock.assert_called_once_with(package_ahriman)
|
||||||
|
|
||||||
|
|
||||||
def test_known_packages(application_packages: ApplicationPackages) -> None:
|
|
||||||
"""
|
|
||||||
must raise NotImplemented for missing known_packages method
|
|
||||||
"""
|
|
||||||
with pytest.raises(NotImplementedError):
|
|
||||||
application_packages._known_packages()
|
|
||||||
|
|
||||||
|
|
||||||
def test_process_dependencies(application_packages: ApplicationPackages, package_ahriman: Package,
|
|
||||||
mocker: MockerFixture) -> None:
|
|
||||||
"""
|
|
||||||
must process dependencies addition
|
|
||||||
"""
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages.add")
|
|
||||||
|
|
||||||
application_packages._process_dependencies(package_ahriman, set(), False)
|
|
||||||
add_mock.assert_called_once_with(package_ahriman.depends_build, PackageSource.AUR, False)
|
|
||||||
|
|
||||||
|
|
||||||
def test_process_dependencies_missing(application_packages: ApplicationPackages, package_ahriman: Package,
|
|
||||||
mocker: MockerFixture) -> None:
|
|
||||||
"""
|
|
||||||
must process dependencies addition only for missing packages
|
|
||||||
"""
|
|
||||||
missing = {"devtools"}
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages.add")
|
|
||||||
|
|
||||||
application_packages._process_dependencies(
|
|
||||||
package_ahriman, package_ahriman.depends_build.difference(missing), False)
|
|
||||||
add_mock.assert_called_once_with(missing, PackageSource.AUR, False)
|
|
||||||
|
|
||||||
|
|
||||||
def test_process_dependencies_skip(application_packages: ApplicationPackages, package_ahriman: Package,
|
|
||||||
mocker: MockerFixture) -> None:
|
|
||||||
"""
|
|
||||||
must skip dependencies processing
|
|
||||||
"""
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages.add")
|
|
||||||
application_packages._process_dependencies(package_ahriman, set(), True)
|
|
||||||
add_mock.assert_not_called()
|
|
||||||
|
|
||||||
|
|
||||||
def test_add_add_archive(application_packages: ApplicationPackages, package_ahriman: Package,
|
def test_add_add_archive(application_packages: ApplicationPackages, package_ahriman: Package,
|
||||||
mocker: MockerFixture) -> None:
|
mocker: MockerFixture) -> None:
|
||||||
"""
|
"""
|
||||||
must add package from archive via add function
|
must add package from archive via add function
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._known_packages",
|
|
||||||
return_value=set())
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_archive")
|
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_archive")
|
||||||
|
|
||||||
application_packages.add([package_ahriman.base], PackageSource.Archive, False)
|
application_packages.add([package_ahriman.base], PackageSource.Archive)
|
||||||
add_mock.assert_called_once_with(package_ahriman.base, set(), False)
|
add_mock.assert_called_once_with(package_ahriman.base)
|
||||||
|
|
||||||
|
|
||||||
def test_add_add_aur(
|
def test_add_add_aur(
|
||||||
@ -169,12 +119,10 @@ def test_add_add_aur(
|
|||||||
"""
|
"""
|
||||||
must add package from AUR via add function
|
must add package from AUR via add function
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._known_packages",
|
|
||||||
return_value=set())
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_aur")
|
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_aur")
|
||||||
|
|
||||||
application_packages.add([package_ahriman.base], PackageSource.AUR, True)
|
application_packages.add([package_ahriman.base], PackageSource.AUR)
|
||||||
add_mock.assert_called_once_with(package_ahriman.base, set(), True)
|
add_mock.assert_called_once_with(package_ahriman.base)
|
||||||
|
|
||||||
|
|
||||||
def test_add_add_directory(application_packages: ApplicationPackages, package_ahriman: Package,
|
def test_add_add_directory(application_packages: ApplicationPackages, package_ahriman: Package,
|
||||||
@ -182,12 +130,10 @@ def test_add_add_directory(application_packages: ApplicationPackages, package_ah
|
|||||||
"""
|
"""
|
||||||
must add packages from directory via add function
|
must add packages from directory via add function
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._known_packages",
|
|
||||||
return_value=set())
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_directory")
|
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_directory")
|
||||||
|
|
||||||
application_packages.add([package_ahriman.base], PackageSource.Directory, False)
|
application_packages.add([package_ahriman.base], PackageSource.Directory)
|
||||||
add_mock.assert_called_once_with(package_ahriman.base, set(), False)
|
add_mock.assert_called_once_with(package_ahriman.base)
|
||||||
|
|
||||||
|
|
||||||
def test_add_add_local(application_packages: ApplicationPackages, package_ahriman: Package,
|
def test_add_add_local(application_packages: ApplicationPackages, package_ahriman: Package,
|
||||||
@ -195,12 +141,10 @@ def test_add_add_local(application_packages: ApplicationPackages, package_ahrima
|
|||||||
"""
|
"""
|
||||||
must add package from local sources via add function
|
must add package from local sources via add function
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._known_packages",
|
|
||||||
return_value=set())
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_local")
|
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_local")
|
||||||
|
|
||||||
application_packages.add([package_ahriman.base], PackageSource.Local, False)
|
application_packages.add([package_ahriman.base], PackageSource.Local)
|
||||||
add_mock.assert_called_once_with(package_ahriman.base, set(), False)
|
add_mock.assert_called_once_with(package_ahriman.base)
|
||||||
|
|
||||||
|
|
||||||
def test_add_add_remote(application_packages: ApplicationPackages, package_description_ahriman: PackageDescription,
|
def test_add_add_remote(application_packages: ApplicationPackages, package_description_ahriman: PackageDescription,
|
||||||
@ -208,13 +152,11 @@ def test_add_add_remote(application_packages: ApplicationPackages, package_descr
|
|||||||
"""
|
"""
|
||||||
must add package from remote source via add function
|
must add package from remote source via add function
|
||||||
"""
|
"""
|
||||||
mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._known_packages",
|
|
||||||
return_value=set())
|
|
||||||
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_remote")
|
add_mock = mocker.patch("ahriman.application.application.application_packages.ApplicationPackages._add_remote")
|
||||||
url = f"https://host/{package_description_ahriman.filename}"
|
url = f"https://host/{package_description_ahriman.filename}"
|
||||||
|
|
||||||
application_packages.add([url], PackageSource.Remote, False)
|
application_packages.add([url], PackageSource.Remote)
|
||||||
add_mock.assert_called_once_with(url, set(), False)
|
add_mock.assert_called_once_with(url)
|
||||||
|
|
||||||
|
|
||||||
def test_on_result(application_packages: ApplicationPackages) -> None:
|
def test_on_result(application_packages: ApplicationPackages) -> None:
|
||||||
|
@ -26,7 +26,7 @@ def _default_args(args: argparse.Namespace) -> argparse.Namespace:
|
|||||||
args.now = False
|
args.now = False
|
||||||
args.refresh = 0
|
args.refresh = 0
|
||||||
args.source = PackageSource.Auto
|
args.source = PackageSource.Auto
|
||||||
args.without_dependencies = False
|
args.dependencies = True
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
@ -38,10 +38,12 @@ def test_run(args: argparse.Namespace, configuration: Configuration, repository:
|
|||||||
args = _default_args(args)
|
args = _default_args(args)
|
||||||
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
application_mock = mocker.patch("ahriman.application.application.Application.add")
|
application_mock = mocker.patch("ahriman.application.application.Application.add")
|
||||||
|
dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies")
|
||||||
on_start_mock = mocker.patch("ahriman.application.application.Application.on_start")
|
on_start_mock = mocker.patch("ahriman.application.application.Application.on_start")
|
||||||
|
|
||||||
Add.run(args, "x86_64", configuration, report=False, unsafe=False)
|
Add.run(args, "x86_64", configuration, report=False, unsafe=False)
|
||||||
application_mock.assert_called_once_with(args.package, args.source, args.without_dependencies)
|
application_mock.assert_called_once_with(args.package, args.source)
|
||||||
|
dependencies_mock.assert_not_called()
|
||||||
on_start_mock.assert_called_once_with()
|
on_start_mock.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
@ -59,11 +61,14 @@ def test_run_with_updates(args: argparse.Namespace, configuration: Configuration
|
|||||||
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
||||||
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
||||||
|
dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies",
|
||||||
|
return_value=[package_ahriman])
|
||||||
|
|
||||||
Add.run(args, "x86_64", configuration, report=False, unsafe=False)
|
Add.run(args, "x86_64", configuration, report=False, unsafe=False)
|
||||||
updates_mock.assert_called_once_with(args.package, aur=False, local=False, manual=True, vcs=False,
|
updates_mock.assert_called_once_with(args.package, aur=False, local=False, manual=True, vcs=False,
|
||||||
log_fn=pytest.helpers.anyvar(int))
|
log_fn=pytest.helpers.anyvar(int))
|
||||||
application_mock.assert_called_once_with([package_ahriman])
|
application_mock.assert_called_once_with([package_ahriman])
|
||||||
|
dependencies_mock.assert_called_once_with([package_ahriman], process_dependencies=args.dependencies)
|
||||||
check_mock.assert_called_once_with(False, False)
|
check_mock.assert_called_once_with(False, False)
|
||||||
|
|
||||||
|
|
||||||
@ -78,6 +83,7 @@ def test_run_empty_exception(args: argparse.Namespace, configuration: Configurat
|
|||||||
mocker.patch("ahriman.application.application.Application.add")
|
mocker.patch("ahriman.application.application.Application.add")
|
||||||
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
mocker.patch("ahriman.application.application.Application.update", return_value=Result())
|
mocker.patch("ahriman.application.application.Application.update", return_value=Result())
|
||||||
|
mocker.patch("ahriman.application.application.Application.with_dependencies")
|
||||||
mocker.patch("ahriman.application.application.Application.updates")
|
mocker.patch("ahriman.application.application.Application.updates")
|
||||||
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
|
|
||||||
|
@ -6,10 +6,25 @@ from ahriman.application.handlers import Dump
|
|||||||
from ahriman.core.configuration import Configuration
|
from ahriman.core.configuration import Configuration
|
||||||
|
|
||||||
|
|
||||||
|
def _default_args(args: argparse.Namespace) -> argparse.Namespace:
|
||||||
|
"""
|
||||||
|
default arguments for these test cases
|
||||||
|
|
||||||
|
Args:
|
||||||
|
args(argparse.Namespace): command line arguments fixture
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
argparse.Namespace: generated arguments for these test cases
|
||||||
|
"""
|
||||||
|
args.secure = True
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
def test_run(args: argparse.Namespace, configuration: Configuration, mocker: MockerFixture) -> None:
|
def test_run(args: argparse.Namespace, configuration: Configuration, mocker: MockerFixture) -> None:
|
||||||
"""
|
"""
|
||||||
must run command
|
must run command
|
||||||
"""
|
"""
|
||||||
|
args = _default_args(args)
|
||||||
print_mock = mocker.patch("ahriman.core.formatters.Printer.print")
|
print_mock = mocker.patch("ahriman.core.formatters.Printer.print")
|
||||||
application_mock = mocker.patch("ahriman.core.configuration.Configuration.dump",
|
application_mock = mocker.patch("ahriman.core.configuration.Configuration.dump",
|
||||||
return_value=configuration.dump())
|
return_value=configuration.dump())
|
||||||
|
@ -131,9 +131,10 @@ def test_disallow_auto_architecture_run() -> None:
|
|||||||
assert not Search.ALLOW_AUTO_ARCHITECTURE_RUN
|
assert not Search.ALLOW_AUTO_ARCHITECTURE_RUN
|
||||||
|
|
||||||
|
|
||||||
def test_sort_fields() -> None:
|
def test_sort_fields(aur_package_ahriman: AURPackage) -> None:
|
||||||
"""
|
"""
|
||||||
must store valid field list which are allowed to be used for sorting
|
must store valid field list which are allowed to be used for sorting
|
||||||
"""
|
"""
|
||||||
expected = {field.name for field in dataclasses.fields(AURPackage)}
|
expected = {field.name for field in dataclasses.fields(AURPackage)}
|
||||||
assert all(field in expected for field in Search.SORT_FIELDS)
|
assert all(field in expected for field in Search.SORT_FIELDS)
|
||||||
|
assert all(not isinstance(getattr(aur_package_ahriman, field), list) for field in Search.SORT_FIELDS)
|
||||||
|
@ -23,6 +23,7 @@ def _default_args(args: argparse.Namespace) -> argparse.Namespace:
|
|||||||
argparse.Namespace: generated arguments for these test cases
|
argparse.Namespace: generated arguments for these test cases
|
||||||
"""
|
"""
|
||||||
args.package = []
|
args.package = []
|
||||||
|
args.dependencies = True
|
||||||
args.dry_run = False
|
args.dry_run = False
|
||||||
args.exit_code = False
|
args.exit_code = False
|
||||||
args.aur = True
|
args.aur = True
|
||||||
@ -44,6 +45,8 @@ def test_run(args: argparse.Namespace, package_ahriman: Package, configuration:
|
|||||||
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
||||||
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
|
dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies",
|
||||||
|
return_value=[package_ahriman])
|
||||||
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
||||||
on_start_mock = mocker.patch("ahriman.application.application.Application.on_start")
|
on_start_mock = mocker.patch("ahriman.application.application.Application.on_start")
|
||||||
|
|
||||||
@ -51,6 +54,7 @@ def test_run(args: argparse.Namespace, package_ahriman: Package, configuration:
|
|||||||
application_mock.assert_called_once_with([package_ahriman])
|
application_mock.assert_called_once_with([package_ahriman])
|
||||||
updates_mock.assert_called_once_with(args.package, aur=args.aur, local=args.local, manual=args.manual, vcs=args.vcs,
|
updates_mock.assert_called_once_with(args.package, aur=args.aur, local=args.local, manual=args.manual, vcs=args.vcs,
|
||||||
log_fn=pytest.helpers.anyvar(int))
|
log_fn=pytest.helpers.anyvar(int))
|
||||||
|
dependencies_mock.assert_called_once_with([package_ahriman], process_dependencies=args.dependencies)
|
||||||
check_mock.assert_has_calls([MockCall(False, False), MockCall(False, False)])
|
check_mock.assert_has_calls([MockCall(False, False), MockCall(False, False)])
|
||||||
on_start_mock.assert_called_once_with()
|
on_start_mock.assert_called_once_with()
|
||||||
|
|
||||||
@ -81,6 +85,7 @@ def test_run_update_empty_exception(args: argparse.Namespace, package_ahriman: P
|
|||||||
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
mocker.patch("ahriman.application.application.Application.update", return_value=Result())
|
mocker.patch("ahriman.application.application.Application.update", return_value=Result())
|
||||||
mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
||||||
|
mocker.patch("ahriman.application.application.Application.with_dependencies", return_value=[package_ahriman])
|
||||||
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
|
|
||||||
Update.run(args, "x86_64", configuration, report=False, unsafe=False)
|
Update.run(args, "x86_64", configuration, report=False, unsafe=False)
|
||||||
|
@ -342,9 +342,10 @@ def test_subparsers_repo_backup_architecture(parser: argparse.ArgumentParser) ->
|
|||||||
|
|
||||||
def test_subparsers_repo_check(parser: argparse.ArgumentParser) -> None:
|
def test_subparsers_repo_check(parser: argparse.ArgumentParser) -> None:
|
||||||
"""
|
"""
|
||||||
repo-check command must imply dry-run, aur and manual
|
repo-check command must imply dependencies, dry-run, aur and manual
|
||||||
"""
|
"""
|
||||||
args = parser.parse_args(["repo-check"])
|
args = parser.parse_args(["repo-check"])
|
||||||
|
assert not args.dependencies
|
||||||
assert args.dry_run
|
assert args.dry_run
|
||||||
assert args.aur
|
assert args.aur
|
||||||
assert not args.manual
|
assert not args.manual
|
||||||
|
@ -10,10 +10,13 @@ def test_properties(configuration_printer: ConfigurationPrinter) -> None:
|
|||||||
|
|
||||||
def test_properties_required(configuration_printer: ConfigurationPrinter) -> None:
|
def test_properties_required(configuration_printer: ConfigurationPrinter) -> None:
|
||||||
"""
|
"""
|
||||||
must return all properties as required
|
must return all safe properties as required
|
||||||
"""
|
"""
|
||||||
assert all(prop.is_required for prop in configuration_printer.properties())
|
assert all(prop.is_required for prop in configuration_printer.properties())
|
||||||
|
|
||||||
|
configuration_printer.values = {"password": "pa55w0rd"}
|
||||||
|
assert all(not prop.is_required for prop in configuration_printer.properties())
|
||||||
|
|
||||||
|
|
||||||
def test_title(configuration_printer: ConfigurationPrinter) -> None:
|
def test_title(configuration_printer: ConfigurationPrinter) -> None:
|
||||||
"""
|
"""
|
||||||
|
@ -22,8 +22,13 @@ def test_package_update(database: SQLite, configuration: Configuration, package_
|
|||||||
patch2 = PkgbuildPatch("key", "value")
|
patch2 = PkgbuildPatch("key", "value")
|
||||||
local = Path("local")
|
local = Path("local")
|
||||||
|
|
||||||
glob_mock = mocker.patch("pathlib.Path.glob", return_value=[".git", ".gitignore"])
|
mocker.patch(
|
||||||
|
"pathlib.Path.is_file",
|
||||||
|
autospec=True,
|
||||||
|
side_effect=lambda p: True if p == Path(".gitignore") else False)
|
||||||
|
glob_mock = mocker.patch("pathlib.Path.glob", return_value=[Path(".git"), Path(".gitignore")])
|
||||||
rmtree_mock = mocker.patch("shutil.rmtree")
|
rmtree_mock = mocker.patch("shutil.rmtree")
|
||||||
|
unlink_mock = mocker.patch("pathlib.Path.unlink")
|
||||||
fetch_mock = mocker.patch("ahriman.core.build_tools.sources.Sources.fetch")
|
fetch_mock = mocker.patch("ahriman.core.build_tools.sources.Sources.fetch")
|
||||||
patches_mock = mocker.patch("ahriman.core.database.SQLite.patches_get", return_value=[patch1, patch2])
|
patches_mock = mocker.patch("ahriman.core.database.SQLite.patches_get", return_value=[patch1, patch2])
|
||||||
patches_write_mock = mocker.patch("ahriman.models.pkgbuild_patch.PkgbuildPatch.write")
|
patches_write_mock = mocker.patch("ahriman.models.pkgbuild_patch.PkgbuildPatch.write")
|
||||||
@ -33,9 +38,9 @@ def test_package_update(database: SQLite, configuration: Configuration, package_
|
|||||||
glob_mock.assert_called_once_with(".git*")
|
glob_mock.assert_called_once_with(".git*")
|
||||||
rmtree_mock.assert_has_calls([
|
rmtree_mock.assert_has_calls([
|
||||||
MockCall(local / package_ahriman.base, ignore_errors=True),
|
MockCall(local / package_ahriman.base, ignore_errors=True),
|
||||||
MockCall(local / package_ahriman.base / ".git"),
|
MockCall(Path(".git")),
|
||||||
MockCall(local / package_ahriman.base / ".gitignore"),
|
|
||||||
])
|
])
|
||||||
|
unlink_mock.assert_called_once_with()
|
||||||
fetch_mock.assert_called_once_with(pytest.helpers.anyvar(int), package_ahriman.remote)
|
fetch_mock.assert_called_once_with(pytest.helpers.anyvar(int), package_ahriman.remote)
|
||||||
patches_mock.assert_called_once_with(package_ahriman.base)
|
patches_mock.assert_called_once_with(package_ahriman.base)
|
||||||
patches_write_mock.assert_has_calls([
|
patches_write_mock.assert_has_calls([
|
||||||
|
@ -125,6 +125,14 @@ def test_licenses(package_ahriman: Package) -> None:
|
|||||||
assert sorted(package_ahriman.licenses) == package_ahriman.licenses
|
assert sorted(package_ahriman.licenses) == package_ahriman.licenses
|
||||||
|
|
||||||
|
|
||||||
|
def test_packages_full(package_ahriman: Package) -> None:
|
||||||
|
"""
|
||||||
|
must return full list of packages including provides
|
||||||
|
"""
|
||||||
|
package_ahriman.packages[package_ahriman.base].provides = [f"{package_ahriman.base}-git"]
|
||||||
|
assert package_ahriman.packages_full == [package_ahriman.base, f"{package_ahriman.base}-git"]
|
||||||
|
|
||||||
|
|
||||||
def test_from_archive(package_ahriman: Package, pyalpm_handle: MagicMock, mocker: MockerFixture) -> None:
|
def test_from_archive(package_ahriman: Package, pyalpm_handle: MagicMock, mocker: MockerFixture) -> None:
|
||||||
"""
|
"""
|
||||||
must construct package from alpm library
|
must construct package from alpm library
|
||||||
|
Reference in New Issue
Block a user