Commit Graph
100 Commits
Author SHA1 Message Date
arcanis 432ca0cc48 better processing for subcommands
Old versions cached full output to memory and only after that printed it
into log. This behaviour causes issues in case if operation stucks and
you would need to find the step at which it does. New check_output
method uses Popen directly and iterates over stdout lines

Also changed behaviour from merging stderr into stdout to separate
stderr logging.

Any other behaviour of the function must be the same.

Also changed GPG.key_import method to disable local signing since it
seems it is useless (and may break process in case if there is no
private key)
2022-04-04 00:03:22 +03:00
arcanis 1a0322b32e docs update 2022-04-03 01:44:11 +03:00
arcanis fc086c0d87 remove implicit user from docker 2022-04-01 18:39:24 +03:00
arcanisandGitHub d5503b22ba add configurable exit codes to some commands (#55) 2022-04-01 18:30:11 +03:00
arcanis a132b1544a create user in docker container
also fix user reading and add nocolor flag by default
2022-03-31 03:25:53 +03:00
arcanis 63acae4b1c configure docker to work with tags 2022-03-31 02:19:48 +03:00
arcanis 8e6473d2a0 add help command 2022-03-31 02:18:39 +03:00
arcanis fdcbcc4541 update license years 2022-03-31 01:49:31 +03:00
arcanisandGitHub 83931f5cf4 port part of settings to database (#54) 2022-03-31 01:48:06 +03:00
arcanis d4eadf0013 migrate to tox
this also requires to move default configuration files to share/ahriman.
Thus the following features have been added
* default configuration is not stored in /usr/share/ahriman/settings
* package installed via PKGBUILD now copies files from /usr
* configuration class now fallbacks to default in /usr
2022-03-21 04:38:42 +03:00
arcanis 04174a3e6d deprecate init/repo-init command
In current workflow you need to run setup to run init (because of
repository name), but you need to run init before setup (because of
repository tree rights).

New solution just add `Repo.init()` method call to setup subcommand
after config reload to make sure that repository name has been applied.
In addition chown method as well as setuid method for check_output have
been added.
2022-03-21 01:32:11 +03:00
arcanis 041b3824c1 enable privileged mode for the docker 2022-03-20 04:05:43 +03:00
arcanis a11cce43ff fallback to AUR source in case of PermissionError exception 2022-03-20 03:46:56 +03:00
arcanis 1388df9a7e add fallback for utf option 2022-03-20 03:16:33 +03:00
arcanis 6ee1c8ef5a replace pspec with spec 2022-03-20 03:08:51 +03:00
arcanis a7c6d95b34 add console printer
also add python-requests as explicit dependency and escape symbols in
repository name for badges in default tempate
2022-03-20 02:31:50 +03:00
arcanis 060c7412b1 ALLOW_AUTO_ARCHITECTURE_RUN flag for unsafe commands 2022-03-19 03:08:45 +03:00
arcanis 93406483fe docker hub integration 2022-03-14 00:08:21 +03:00
arcanisandGitHub 046febc440 add docker support (#52)
* add docker support

* make shellcheck happy
2022-03-13 23:43:25 +03:00
arcanis 9964a96296 strict test checks 2022-03-04 02:04:52 +03:00
arcanis 9529525cb5 set success status on up to date packages 2022-02-06 06:22:58 +03:00
arcanis fa4c1c6205 Release 1.8.0 2022-02-06 05:45:50 +03:00
arcanis f9b1d89756 update for new aiohttp api 2022-02-06 04:05:33 +03:00
arcanisandGitHub 9197b416e6 use own aur wrapper (#49) 2022-02-06 03:44:57 +03:00
arcanis f54a2fe740 Release 1.7.0 2021-12-26 02:01:09 +03:00
arcanis d1f990eac8 make mypy happy 2021-12-26 01:58:55 +03:00
arcanis 1e85c1db70 handle dependencies recursively 2021-12-22 19:35:09 +03:00
arcanisandGitHub 32aaa4a1f8 initial implementation of the local git clones (#48) 2021-12-22 15:56:24 +03:00
arcanis a9e20f0958 do not read aur_url from settings, use repository property instead 2021-11-15 11:27:41 +03:00
arcanis 32b129a806 Release 1.6.4 2021-11-10 21:29:45 +03:00
arcanisandGitHub 2752e68ade handle packages which have been removed from the repository (#45)
* handle packages which have been removed from the repository

* manually remove packages which have been removed from the base
2021-11-10 01:37:25 +03:00
arcanis 5b678149dc Release 1.6.3 2021-11-04 21:32:27 +03:00
arcanis 79e1cff421 take python laziness into account 2021-11-04 21:30:34 +03:00
arcanis 2e07de4a12 Release 1.6.2 2021-10-28 03:20:52 +03:00
arcanis 7e3ef889e8 improve configuration extension
* Allow spaces in lists. This feature has been done in the way as shell
  interprets arguments by using quotation marks
* Clear current content on reload
2021-10-28 03:19:50 +03:00
arcanis 52b54a9d05 add nginx configuration to the faq 2021-10-27 03:35:33 +03:00
arcanis c0f7f81050 Release 1.6.1 2021-10-27 03:16:53 +03:00
arcanis 38af344bde update license headers 2021-10-27 03:14:39 +03:00
arcanis 62496478ae add update printer which will print current version if any 2021-10-27 03:11:43 +03:00
arcanis ce48169aad use PackageSource enum for Package.load method
When using add function it sill tries to load data with invalid source
2021-10-27 02:49:23 +03:00
arcanis 21845bc934 Release 1.6.0 2021-10-27 01:59:36 +03:00
arcanis 249003de0a drop no-quiet option and change tree_create message error to warn 2021-10-27 01:57:54 +03:00
arcanis d8704e9c75 remove help sample from readme because it changes faster than om able to maintain it 2021-10-26 04:53:45 +03:00
arcanis 0a8b172e9c unify aur.search method
due to specific of the AUR API in order to reduce the code we are using
own wrapper and work with it instead of direct library calls
2021-10-26 04:49:55 +03:00
arcanis 7d782f120d Add ability to show more info in search and status subcommands
This feature also introduces the followiing changes
* aur-search command now works as expected with multiterms
* printer classes for managing of data print
* --sort-by argument for aur-search subcommand instead of using package
  name
* --quiet argument now has also --no-quite option
* if --quite is supplied, the log level will be set to warn instead of
  critical to be able to see error messages
* pretty_datetime function now also supports datetime objects
* BuildStatus is now pure dataclass
2021-10-26 04:27:36 +03:00
arcanis 9057ecf67a always update environnment before any action 2021-10-24 04:14:57 +03:00
arcanis 35df354c14 split application class into traits 2021-10-23 13:44:57 +03:00
arcanis 4d4e5e9dde add patches to clean command 2021-10-20 03:22:16 +03:00
arcanis ff24188ca1 add ability to download package from external links (e.g. HTTP) 2021-10-20 03:09:58 +03:00
arcanis 9d4f85624d add ability to read argument list from file 2021-10-20 02:15:59 +03:00
arcanis 295f810222 logger improvements
* remove build log since it has no usages actually (replaced by root
  logger)
* decrease boto3 log levels to INFO by default to reduce noice
2021-10-20 02:12:49 +03:00
arcanis d8523bd83b always return json in responses 2021-10-20 02:12:39 +03:00
arcanis be017ed102 Release 1.5.0 2021-10-18 03:48:24 +03:00
arcanis c73f24f8c6 minor architecture description update 2021-10-18 03:35:39 +03:00
arcanis 0d806e3471 add repo-status-update subcommand 2021-10-17 06:38:49 +03:00
arcanis 20962f0385 allow to use multiple upload and report targets with the same name
In this feature target option must allways point to section name instead
of type. Type will be read from type option. In case if type option is
not presented it will try to check if section with architecture exists
(e.g. target = email, section = email:x86_64); if it does, the correct
section name and type will be used. Otherwise it will check if the
specified section exists; if it does, seection name and type will be
returned.
2021-10-17 06:06:08 +03:00
arcanis fd38dfd176 split github upload into generic http method and github specific
We might use some features from the http upload for another parser
2021-10-15 23:36:26 +03:00
arcanis 5f7f58041d docs update 2021-10-15 04:55:46 +03:00
arcanis 233b1f7f39 disallow to create tree in case of unsafe run 2021-10-14 04:53:09 +03:00
arcanis a83f1d5aa5 use generic removal method 2021-10-14 04:08:21 +03:00
arcanis be09c04e78 change method spelling
in order to sort method correctly we are going to use the following
namiing schema:

{subject}_{action}_{details}

This schema still have some exceptions, e.g. single word methods, bool
methods (is_) and getters in case if they are singular (i.e. there is
no any other method with this subject)
2021-10-14 04:01:54 +03:00
arcanis bfbbb987ad add test for every file 2021-10-14 03:34:12 +03:00
arcanis 04f365f1a6 aggressive small case 2021-10-14 03:13:15 +03:00
arcanis 86bd49ed1b exactly one called with instead of last call check 2021-10-14 03:12:45 +03:00
arcanisandGitHub f6ad609616 github upload support (#41) 2021-10-14 02:30:13 +03:00
arcanisandGitHub 2f5790f69f add ability to add manually stored packages (#40)
* add ability to add manually stored packages

* update tests

* handle manual packages in remove-unknown method

* live fixes

also rename branches to has_remotes method and change return type
2021-10-12 21:15:35 +03:00
arcanis faaf72a840 improve scripts
move logic to separated shell scripts and also create shell script for
repository setup

Also force create directory according to systemd recommendations
2021-10-11 02:20:16 +03:00
arcanis ef44895b0d more verbose help messages 2021-10-07 01:56:22 +03:00
arcanis 5cfffbcd46 patch control subcommands 2021-10-05 08:57:42 +03:00
arcanisandGitHub 3e0058620b patch support (#35) 2021-10-03 15:20:36 +03:00
arcanis e897e2cde2 do not write anything on httpexceptions in log 2021-10-03 02:05:28 +03:00
arcanis edef4944f6 replace no-log with quiet
Also behavior of the flag has been changed: now it disables logs at all
2021-10-03 01:59:33 +03:00
arcanis a4eaf87116 Release 1.4.1 2021-10-03 01:02:41 +03:00
arcanis 1192f12f91 do not use set_defaults for architecture arguments
according to the source code defaults always updates the values
dictionary. This in this specific case it is impossible to override the
value it will be always empty list.

In order to handle it we are adding another property to the Handler
class which allows to run with None architecture list.

This particular set_defaults behaviour is still useful for other cases
when we have to run command without any specific architecture
2021-10-03 00:59:24 +03:00
arcanis 444da87fdc Release 1.4.0 2021-10-01 09:25:35 +03:00
arcanis 6be6614e6d add package request endpoint 2021-10-01 08:58:50 +03:00
arcanis 8add507957 docs update 2021-09-26 14:39:35 +03:00
arcanis af5363d158 add index url 2021-09-26 14:29:42 +03:00
arcanis d60c553ea2 add debugtoolbar support 2021-09-26 12:31:12 +03:00
arcanis 5a6d0e0000 set both value and innerText during search
current implementation just adds package name with the description which
is incorrect
2021-09-26 10:34:21 +03:00
arcanis 427ba0f0ea add ability to specify package source explicitly during the addition 2021-09-26 09:55:14 +03:00
arcanis 266d2bd77d define permissions in views directly 2021-09-25 17:03:46 +03:00
arcanis f333e89bd1 only set file rights if requested 2021-09-23 20:36:22 +03:00
arcanis 659db071a1 raise httpexception instead of returning it from a function 2021-09-19 14:28:24 +03:00
arcanis 56c642e2a9 add manpage 2021-09-19 13:56:11 +03:00
arcanis 845bc9b5e8 Release 1.3.0 2021-09-18 06:28:52 +03:00
arcanis 57f45fdc89 better reload 2021-09-17 19:15:53 +03:00
arcanis ba483173af update aioauth-client to newest version 2021-09-17 18:45:43 +03:00
arcanis 6d1f641e50 add ability to reload authentication module 2021-09-17 16:05:38 +03:00
arcanis 0cf7756ec4 add ability to remove an user
also replace old user by new one before creation
2021-09-16 02:41:56 +03:00
arcanis b561bcc25d remove own implementations of getlist and getpath method in order to use
converters feature
2021-09-14 03:57:20 +03:00
arcanis 25d76b0482 add ability to filter status response by package status 2021-09-13 23:27:36 +03:00
arcanis d2fe4b044f raise InvalidCommand exception in case if remove option supplied without
package
2021-09-13 22:38:38 +03:00
arcanis 22272167e6 change spelling for distro name 2021-09-13 02:49:22 +03:00
arcanis 38dce8c0fe add target for architecture and also update it 2021-09-13 02:01:48 +03:00
arcanis 68aa327670 expiration on server side support (#33) 2021-09-13 01:18:04 +03:00
arcanis 04f6af58d9 send data in json_responses in case of error instead of text 2021-09-12 22:41:02 +03:00
arcanis 41c8f4c35f return description from the search 2021-09-12 22:31:34 +03:00
arcanisandGitHub 168b2f6880 OAuth2 (#32)
* make auth method asyncs

* oauth2 demo support

* full coverage

* update docs
2021-09-12 21:41:38 +03:00
arcanis 14e8eee986 remove deprecated access status 2021-09-11 23:06:30 +03:00