mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-07-17 15:59:55 +00:00
Compare commits
30 Commits
4b5a645f8d
...
2.17.2
Author | SHA1 | Date | |
---|---|---|---|
e0f1563f62 | |||
ed67898012 | |||
a1a8dd68e8 | |||
a9505386c2 | |||
a07b20bf50 | |||
ed70897c39 | |||
0423c3e67c | |||
571f62327f | |||
286ff4bcef | |||
0660c33de3 | |||
c8421e97ee | |||
bc2288afc1 | |||
503c8b0355 | |||
6738f9206d | |||
f865e998b0 | |||
4880ca4fee | |||
56114ecc1e | |||
57ab3ffb8f | |||
8b08bfe3b4 | |||
e34356989d | |||
7c7804a9f4 | |||
c4a56f1454 | |||
1caed156ad | |||
45a620c40b | |||
3c1fdec0e9 | |||
f5d7085325 | |||
0cc35e70e3 | |||
f09082dff2 | |||
8d53a59a6a | |||
20e7ba3b1d |
136
.github/workflows/regress.yml
vendored
Normal file
136
.github/workflows/regress.yml
vendored
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
name: Regress
|
||||||
|
|
||||||
|
on: workflow_dispatch
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run-regress-tests:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
ahriman:
|
||||||
|
image: arcan1s/ahriman:edge
|
||||||
|
env:
|
||||||
|
AHRIMAN_PORT: 8080
|
||||||
|
AHRIMAN_UNIX_SOCKET: /var/lib/ahriman/ahriman/ahriman-web.sock
|
||||||
|
options: --privileged --entrypoint entrypoint-web
|
||||||
|
ports:
|
||||||
|
- 8080
|
||||||
|
volumes:
|
||||||
|
- repo:/var/lib/ahriman
|
||||||
|
|
||||||
|
container:
|
||||||
|
image: arcan1s/ahriman:edge
|
||||||
|
env:
|
||||||
|
AHRIMAN_DEBUG: y
|
||||||
|
AHRIMAN_OUTPUT: console
|
||||||
|
AHRIMAN_PORT: 8080
|
||||||
|
AHRIMAN_UNIX_SOCKET: /var/lib/ahriman/ahriman/ahriman-web.sock
|
||||||
|
options: --privileged
|
||||||
|
volumes:
|
||||||
|
- repo:/var/lib/ahriman
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- run: pacman -Sy
|
||||||
|
|
||||||
|
- name: Init repository
|
||||||
|
run: entrypoint help
|
||||||
|
|
||||||
|
- name: Print configuration
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
service-config
|
||||||
|
|
||||||
|
- name: Validate configuration
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
service-config-validate
|
||||||
|
|
||||||
|
- name: Create a user
|
||||||
|
run: |
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
user-add \
|
||||||
|
--packager "github actions <actions@github.com>" \
|
||||||
|
--password ahriman \
|
||||||
|
--role full \
|
||||||
|
ahriman
|
||||||
|
|
||||||
|
- name: Fetch users
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
user-list \
|
||||||
|
--exit-code
|
||||||
|
|
||||||
|
- name: Add package
|
||||||
|
run: |
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
package-add \
|
||||||
|
--exit-code \
|
||||||
|
--now \
|
||||||
|
--refresh \
|
||||||
|
ahriman
|
||||||
|
|
||||||
|
- name: Update status of the package
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
package-status-update \
|
||||||
|
--status failed \
|
||||||
|
ahriman
|
||||||
|
|
||||||
|
- name: Request status of the package
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
package-status \
|
||||||
|
--exit-code \
|
||||||
|
--info \
|
||||||
|
--status failed \
|
||||||
|
ahriman
|
||||||
|
|
||||||
|
- name: Update packages
|
||||||
|
run: |
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
repo-update \
|
||||||
|
--exit-code \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
- name: Add patch
|
||||||
|
run: |
|
||||||
|
echo '${pkgver%%.*}' | \
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
patch-add \
|
||||||
|
ahriman \
|
||||||
|
pkgrel
|
||||||
|
|
||||||
|
- name: Retrieve patches
|
||||||
|
run: |
|
||||||
|
ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
patch-list \
|
||||||
|
--exit-code \
|
||||||
|
ahriman
|
||||||
|
|
||||||
|
- name: Rebuild packages
|
||||||
|
run: |
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
repo-rebuild \
|
||||||
|
--depends-on python \
|
||||||
|
--exit-code
|
||||||
|
|
||||||
|
- name: Remove package
|
||||||
|
run: |
|
||||||
|
sudo -u ahriman ahriman \
|
||||||
|
--log-handler "$AHRIMAN_OUTPUT" \
|
||||||
|
package-remove \
|
||||||
|
ahriman
|
2
.github/workflows/setup.sh
vendored
2
.github/workflows/setup.sh
vendored
@ -18,7 +18,7 @@ if [[ -z $MINIMAL_INSTALL ]]; then
|
|||||||
# web server
|
# web server
|
||||||
pacman -S --noconfirm python-aioauth-client python-aiohttp python-aiohttp-apispec-git python-aiohttp-cors python-aiohttp-jinja2 python-aiohttp-security python-aiohttp-session python-cryptography python-jinja
|
pacman -S --noconfirm python-aioauth-client python-aiohttp python-aiohttp-apispec-git python-aiohttp-cors python-aiohttp-jinja2 python-aiohttp-security python-aiohttp-session python-cryptography python-jinja
|
||||||
# additional features
|
# additional features
|
||||||
pacman -S --noconfirm gnupg python-boto3 python-cerberus python-matplotlib rsync
|
pacman -S --noconfirm gnupg ipython python-boto3 python-cerberus python-matplotlib rsync
|
||||||
fi
|
fi
|
||||||
# FIXME since 1.0.4 devtools requires dbus to be run, which doesn't work now in container
|
# FIXME since 1.0.4 devtools requires dbus to be run, which doesn't work now in container
|
||||||
cp "docker/systemd-nspawn.sh" "/usr/local/bin/systemd-nspawn"
|
cp "docker/systemd-nspawn.sh" "/usr/local/bin/systemd-nspawn"
|
||||||
|
2
.github/workflows/setup.yml
vendored
2
.github/workflows/setup.yml
vendored
@ -15,9 +15,9 @@ jobs:
|
|||||||
|
|
||||||
container:
|
container:
|
||||||
image: archlinux:base
|
image: archlinux:base
|
||||||
|
options: --privileged -w /build
|
||||||
volumes:
|
volumes:
|
||||||
- ${{ github.workspace }}:/build
|
- ${{ github.workspace }}:/build
|
||||||
options: --privileged -w /build
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
4
.github/workflows/tests.yml
vendored
4
.github/workflows/tests.yml
vendored
@ -7,6 +7,8 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
schedule:
|
||||||
|
- cron: 1 0 * * *
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run-tests:
|
run-tests:
|
||||||
@ -15,9 +17,9 @@ jobs:
|
|||||||
|
|
||||||
container:
|
container:
|
||||||
image: archlinux:base
|
image: archlinux:base
|
||||||
|
options: -w /build
|
||||||
volumes:
|
volumes:
|
||||||
- ${{ github.workspace }}:/build
|
- ${{ github.workspace }}:/build
|
||||||
options: -w /build
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
@ -305,7 +305,7 @@ max-branches=12
|
|||||||
max-locals=15
|
max-locals=15
|
||||||
|
|
||||||
# Maximum number of parents for a class (see R0901).
|
# Maximum number of parents for a class (see R0901).
|
||||||
max-parents=7
|
max-parents=15
|
||||||
|
|
||||||
# Maximum number of public methods for a class (see R0904).
|
# Maximum number of public methods for a class (see R0904).
|
||||||
max-public-methods=20
|
max-public-methods=20
|
||||||
|
@ -175,11 +175,10 @@ Again, the most checks can be performed by `tox` command, though some additional
|
|||||||
* Web API methods must be documented by using `aiohttp_apispec` library. The schema testing mostly should be implemented in related view class tests. Recommended example for documentation (excluding comments):
|
* Web API methods must be documented by using `aiohttp_apispec` library. The schema testing mostly should be implemented in related view class tests. Recommended example for documentation (excluding comments):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import aiohttp_apispec
|
|
||||||
|
|
||||||
from marshmallow import Schema, fields
|
from marshmallow import Schema, fields
|
||||||
|
|
||||||
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNameSchema, PaginationSchema
|
from ahriman.web.apispec.decorators import apidocs
|
||||||
|
from ahriman.web.schemas import PackageNameSchema, PaginationSchema
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
@ -198,25 +197,17 @@ Again, the most checks can be performed by `tox` command, though some additional
|
|||||||
POST_PERMISSION = ...
|
POST_PERMISSION = ...
|
||||||
ROUTES = ...
|
ROUTES = ...
|
||||||
|
|
||||||
@aiohttp_apispec.docs(
|
@apidocs(
|
||||||
tags=["Tag"],
|
tags=["Tag"],
|
||||||
summary="Do foo",
|
summary="Do foo",
|
||||||
description="Extended description of the method which does foo",
|
description="Extended description of the method which does foo",
|
||||||
responses={
|
error_400_enabled=True, # exception raised by this method
|
||||||
200: {"description": "Success response", "schema": ResponseSchema},
|
error_404_description="Repository is unknown",
|
||||||
204: {"description": "Success response"}, # example without json schema response
|
schema=ResponseSchema, # leave empty if no responses here
|
||||||
400: {"description": "Bad data is supplied", "schema": ErrorSchema}, # exception raised by this method
|
match_schema=PackageNameSchema,
|
||||||
401: {"description": "Authorization required", "schema": ErrorSchema}, # should be always presented
|
query_schema=PaginationSchema,
|
||||||
403: {"description": "Access is forbidden", "schema": ErrorSchema}, # should be always presented
|
body_schema=RequestSchema(many=True),
|
||||||
404: {"description": "Repository is unknown", "schema": ErrorSchema}, # include if BaseView.service() method is called
|
|
||||||
500: {"description": "Internal server error", "schema": ErrorSchema}, # should be always presented
|
|
||||||
},
|
|
||||||
security=[{"token": [POST_PERMISSION]}],
|
|
||||||
)
|
)
|
||||||
@aiohttp_apispec.cookies_schema(AuthSchema) # should be always presented
|
|
||||||
@aiohttp_apispec.match_info_schema(PackageNameSchema)
|
|
||||||
@aiohttp_apispec.querystring_schema(PaginationSchema)
|
|
||||||
@aiohttp_apispec.json_schema(RequestSchema(many=True))
|
|
||||||
async def post(self) -> None: ...
|
async def post(self) -> None: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1,4 +1,77 @@
|
|||||||
FROM archlinux:base
|
# build image
|
||||||
|
FROM archlinux:base AS build
|
||||||
|
|
||||||
|
# install environment
|
||||||
|
## create build user
|
||||||
|
RUN useradd -m -d "/home/build" -s "/usr/bin/nologin" build
|
||||||
|
|
||||||
|
## extract container creation date and set mirror for this timestamp, set PKGEXT and refresh database next
|
||||||
|
RUN echo "Server = https://archive.archlinux.org/repos/$(stat -c "%y" "/var/lib/pacman" | cut -d " " -f 1 | sed "s,-,/,g")/\$repo/os/\$arch" > "/etc/pacman.d/mirrorlist" && \
|
||||||
|
pacman -Sy
|
||||||
|
## setup package cache
|
||||||
|
RUN runuser -u build -- mkdir "/tmp/pkg" && \
|
||||||
|
echo "PKGDEST=/tmp/pkg" >> "/etc/makepkg.conf" && \
|
||||||
|
echo "[options]" >> "/etc/pacman.conf" && \
|
||||||
|
echo "CacheDir = /tmp/pkg/" >> "/etc/pacman.conf"
|
||||||
|
|
||||||
|
## install anc configure sudo
|
||||||
|
RUN pacman -S --noconfirm --asdeps sudo && \
|
||||||
|
echo "build ALL=(ALL) NOPASSWD: ALL" > "/etc/sudoers.d/build"
|
||||||
|
## copy install script
|
||||||
|
COPY "docker/install-aur-package.sh" "/usr/local/bin/install-aur-package"
|
||||||
|
## install package dependencies
|
||||||
|
RUN pacman -S --noconfirm --asdeps \
|
||||||
|
devtools \
|
||||||
|
git \
|
||||||
|
pyalpm \
|
||||||
|
python-bcrypt \
|
||||||
|
python-inflection \
|
||||||
|
python-pyelftools \
|
||||||
|
python-requests \
|
||||||
|
&& \
|
||||||
|
pacman -S --noconfirm --asdeps \
|
||||||
|
base-devel \
|
||||||
|
python-build \
|
||||||
|
python-flit \
|
||||||
|
python-installer \
|
||||||
|
python-tox \
|
||||||
|
python-wheel \
|
||||||
|
&& \
|
||||||
|
pacman -S --noconfirm --asdeps \
|
||||||
|
git \
|
||||||
|
python-aiohttp \
|
||||||
|
python-boto3 \
|
||||||
|
python-cerberus \
|
||||||
|
python-cryptography \
|
||||||
|
python-jinja \
|
||||||
|
python-systemd \
|
||||||
|
rsync \
|
||||||
|
&& \
|
||||||
|
runuser -u build -- install-aur-package \
|
||||||
|
python-aioauth-client \
|
||||||
|
python-sphinx-typlog-theme \
|
||||||
|
python-webargs \
|
||||||
|
python-aiohttp-apispec-git \
|
||||||
|
python-aiohttp-cors \
|
||||||
|
python-aiohttp-jinja2 \
|
||||||
|
python-aiohttp-session \
|
||||||
|
python-aiohttp-security \
|
||||||
|
python-requests-unixsocket2
|
||||||
|
|
||||||
|
# install ahriman
|
||||||
|
## copy tree
|
||||||
|
COPY --chown=build . "/home/build/ahriman"
|
||||||
|
## create package archive and install it
|
||||||
|
RUN cd "/home/build/ahriman" && \
|
||||||
|
tox -e archive && \
|
||||||
|
cp ./dist/*.tar.gz "package/archlinux" && \
|
||||||
|
cd "package/archlinux" && \
|
||||||
|
runuser -u build -- makepkg --noconfirm --skipchecksums && \
|
||||||
|
cd / && rm -r "/home/build/ahriman"
|
||||||
|
|
||||||
|
|
||||||
|
# main image
|
||||||
|
FROM archlinux:base AS ahriman
|
||||||
|
|
||||||
# image configuration
|
# image configuration
|
||||||
ENV AHRIMAN_ARCHITECTURE="x86_64"
|
ENV AHRIMAN_ARCHITECTURE="x86_64"
|
||||||
@ -23,74 +96,45 @@ ENV AHRIMAN_VALIDATE_CONFIGURATION="yes"
|
|||||||
## update pacman.conf with multilib
|
## update pacman.conf with multilib
|
||||||
RUN echo "[multilib]" >> "/etc/pacman.conf" && \
|
RUN echo "[multilib]" >> "/etc/pacman.conf" && \
|
||||||
echo "Include = /etc/pacman.d/mirrorlist" >> "/etc/pacman.conf"
|
echo "Include = /etc/pacman.d/mirrorlist" >> "/etc/pacman.conf"
|
||||||
## refresh packages, install sudo and install packages for building
|
## copy built packages from build image and setup repository
|
||||||
RUN pacman -Syu --noconfirm sudo && \
|
COPY --from=build "/tmp/pkg" "/var/cache/pacman/pkg"
|
||||||
pacman -S --noconfirm --asdeps fakeroot python-tox
|
RUN repo-add "/var/cache/pacman/pkg/core.db.tar.zst" "/var/cache/pacman/pkg/"*.pkg.tar.zst && \
|
||||||
## create build user
|
repo-add "/var/cache/pacman/pkg/extra.db.tar.zst" && \
|
||||||
RUN useradd -m -d "/home/build" -s "/usr/bin/nologin" build && \
|
repo-add "/var/cache/pacman/pkg/multilib.db.tar.zst"
|
||||||
echo "build ALL=(ALL) NOPASSWD: ALL" > "/etc/sudoers.d/build"
|
## set local directory to use as repository and refresh database
|
||||||
COPY "docker/install-aur-package.sh" "/usr/local/bin/install-aur-package"
|
RUN cp "/etc/pacman.d/mirrorlist" "/etc/pacman.d/mirrorlist.orig" && \
|
||||||
## install package dependencies
|
echo "Server = file:///var/cache/pacman/pkg" > "/etc/pacman.d/mirrorlist" && \
|
||||||
|
cp "/etc/pacman.conf" "/etc/pacman.conf.orig" && \
|
||||||
|
sed -i "s/SigLevel *=.*/SigLevel = Optional/g" "/etc/pacman.conf" && \
|
||||||
|
pacman -Sy
|
||||||
|
## install package and its optional dependencies
|
||||||
|
RUN pacman -S --noconfirm ahriman
|
||||||
RUN pacman -S --noconfirm --asdeps \
|
RUN pacman -S --noconfirm --asdeps \
|
||||||
devtools \
|
python-aioauth-client \
|
||||||
git \
|
python-aiohttp-apispec-git \
|
||||||
pyalpm \
|
python-aiohttp-security \
|
||||||
python-bcrypt \
|
python-aiohttp-session \
|
||||||
python-inflection \
|
|
||||||
python-pyelftools \
|
|
||||||
python-requests \
|
|
||||||
&& \
|
|
||||||
pacman -S --noconfirm --asdeps \
|
|
||||||
base-devel \
|
|
||||||
python-build \
|
|
||||||
python-flit \
|
|
||||||
python-installer \
|
|
||||||
python-wheel \
|
|
||||||
&& \
|
|
||||||
pacman -S --noconfirm --asdeps \
|
|
||||||
git \
|
|
||||||
python-aiohttp \
|
|
||||||
python-boto3 \
|
python-boto3 \
|
||||||
python-cerberus \
|
python-cerberus \
|
||||||
python-cryptography \
|
python-cryptography \
|
||||||
python-jinja \
|
|
||||||
python-systemd \
|
python-systemd \
|
||||||
|
python-requests-unixsocket2 \
|
||||||
rsync \
|
rsync \
|
||||||
&& \
|
sudo
|
||||||
runuser -u build -- install-aur-package \
|
|
||||||
python-aioauth-client \
|
|
||||||
python-sphinx-typlog-theme \
|
|
||||||
python-webargs \
|
|
||||||
python-aiohttp-apispec-git \
|
|
||||||
python-aiohttp-cors \
|
|
||||||
python-aiohttp-jinja2 \
|
|
||||||
python-aiohttp-session \
|
|
||||||
python-aiohttp-security \
|
|
||||||
python-requests-unixsocket2
|
|
||||||
|
|
||||||
## FIXME since 1.0.4 devtools requires dbus to be run, which doesn't work now in container
|
## clear cache and restore system
|
||||||
COPY "docker/systemd-nspawn.sh" "/usr/local/bin/systemd-nspawn"
|
RUN find "/var/cache/pacman/pkg" "/var/lib/pacman/sync" -type "f,l" -delete && \
|
||||||
|
cp "/etc/pacman.d/mirrorlist.orig" "/etc/pacman.d/mirrorlist" && \
|
||||||
# install ahriman
|
cp "/etc/pacman.conf.orig" "/etc/pacman.conf"
|
||||||
## copy tree
|
|
||||||
COPY --chown=build . "/home/build/ahriman"
|
|
||||||
## create package archive and install it
|
|
||||||
RUN cd "/home/build/ahriman" && \
|
|
||||||
tox -e archive && \
|
|
||||||
cp ./dist/*.tar.gz "package/archlinux" && \
|
|
||||||
cd "package/archlinux" && \
|
|
||||||
runuser -u build -- makepkg --noconfirm --skipchecksums && \
|
|
||||||
runuser -u build -- makepkg --packagelist | grep -v -- -debug- | pacman -U --noconfirm --nodeps - && \
|
|
||||||
cd / && rm -r "/home/build/ahriman"
|
|
||||||
|
|
||||||
# cleanup unused
|
|
||||||
RUN find "/var/cache/pacman/pkg" -type f -delete
|
|
||||||
RUN pacman -Qdtq | pacman -Rscn --noconfirm -
|
|
||||||
|
|
||||||
VOLUME ["/var/lib/ahriman"]
|
VOLUME ["/var/lib/ahriman"]
|
||||||
|
|
||||||
# minimal runtime ahriman setup
|
# minimal runtime ahriman setup
|
||||||
|
## FIXME since 1.0.4 devtools requires dbus to be run, which doesn't work now in container
|
||||||
|
COPY "docker/systemd-nspawn.sh" "/usr/local/bin/systemd-nspawn"
|
||||||
|
## entrypoint setup
|
||||||
COPY "docker/entrypoint.sh" "/usr/local/bin/entrypoint"
|
COPY "docker/entrypoint.sh" "/usr/local/bin/entrypoint"
|
||||||
|
COPY "docker/entrypoint-web.sh" "/usr/local/bin/entrypoint-web"
|
||||||
ENTRYPOINT ["entrypoint"]
|
ENTRYPOINT ["entrypoint"]
|
||||||
# default command
|
# default command
|
||||||
CMD ["repo-update", "--refresh"]
|
CMD ["repo-update", "--refresh"]
|
||||||
|
5
docker/entrypoint-web.sh
Executable file
5
docker/entrypoint-web.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Special workaround for running web service in github actions, must not be usually used in real environment,
|
||||||
|
# consider running web command explicitly instead
|
||||||
|
|
||||||
|
exec entrypoint web "$@"
|
@ -57,6 +57,9 @@ ahriman "${AHRIMAN_DEFAULT_ARGS[@]}" service-setup "${AHRIMAN_SETUP_ARGS[@]}"
|
|||||||
# create machine-id which is required by build tools
|
# create machine-id which is required by build tools
|
||||||
systemd-machine-id-setup &> /dev/null
|
systemd-machine-id-setup &> /dev/null
|
||||||
|
|
||||||
|
# special workaround to emulate /bin/bash entrypoint if first argument starts with /
|
||||||
|
[[ "$1" =~ ^/.* ]] && exec "$@"
|
||||||
|
|
||||||
# if AHRIMAN_FORCE_ROOT is set or command is unsafe we can run without sudo
|
# if AHRIMAN_FORCE_ROOT is set or command is unsafe we can run without sudo
|
||||||
# otherwise we prepend executable by sudo command
|
# otherwise we prepend executable by sudo command
|
||||||
if [ -n "$AHRIMAN_FORCE_ROOT" ]; then
|
if [ -n "$AHRIMAN_FORCE_ROOT" ]; then
|
||||||
|
@ -4,8 +4,12 @@ set -e
|
|||||||
|
|
||||||
for PACKAGE in "$@"; do
|
for PACKAGE in "$@"; do
|
||||||
BUILD_DIR="$(mktemp -d)"
|
BUILD_DIR="$(mktemp -d)"
|
||||||
|
# clone the remote source
|
||||||
git clone https://aur.archlinux.org/"$PACKAGE".git "$BUILD_DIR"
|
git clone https://aur.archlinux.org/"$PACKAGE".git "$BUILD_DIR"
|
||||||
cd "$BUILD_DIR"
|
cd "$BUILD_DIR"
|
||||||
|
# checkout to the image date
|
||||||
|
git checkout "$(git rev-list -1 --before="$(stat -c "%y" "/var/lib/pacman" | cut -d " " -f 1)" master)"
|
||||||
|
# build and install the package
|
||||||
makepkg --nocheck --noconfirm --install --rmdeps --syncdeps
|
makepkg --nocheck --noconfirm --install --rmdeps --syncdeps
|
||||||
cd /
|
cd /
|
||||||
rm -r "$BUILD_DIR"
|
rm -r "$BUILD_DIR"
|
||||||
|
3651
docs/_static/architecture.dot
vendored
3651
docs/_static/architecture.dot
vendored
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,7 @@ The main functionality of the class is already described, but command is still n
|
|||||||
|
|
||||||
arguments = set_parser
|
arguments = set_parser
|
||||||
|
|
||||||
In addition, ``ahriman.application.handlers.handler.Handler.ALLOW_MULTI_ARCHITECTURE_RUN`` can be set to ``False`` in order to disable multiprocess run (e.g. in case if there are conflicting operations, like writting to stdout).
|
In addition, ``ahriman.application.handlers.handler.Handler.ALLOW_MULTI_ARCHITECTURE_RUN`` can be set to ``False`` in order to disable multiprocess run (e.g. in case if there are conflicting operations, like writing to stdout).
|
||||||
|
|
||||||
Save the file above as ``/usr/lib/python3.12/site-packages/ahriman/application/handlers/help_web.py`` (replace ``python3.12`` with actual python version) and you are set.
|
Save the file above as ``/usr/lib/python3.12/site-packages/ahriman/application/handlers/help_web.py`` (replace ``python3.12`` with actual python version) and you are set.
|
||||||
|
|
||||||
|
@ -29,6 +29,14 @@ ahriman.application.help\_formatter module
|
|||||||
:no-undoc-members:
|
:no-undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
ahriman.application.interactive\_shell module
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.application.interactive_shell
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
ahriman.application.lock module
|
ahriman.application.lock module
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
29
docs/ahriman.web.apispec.rst
Normal file
29
docs/ahriman.web.apispec.rst
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
ahriman.web.apispec package
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Submodules
|
||||||
|
----------
|
||||||
|
|
||||||
|
ahriman.web.apispec.decorators module
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.web.apispec.decorators
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
ahriman.web.apispec.info module
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.web.apispec.info
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
Module contents
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.web.apispec
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
@ -7,6 +7,7 @@ Subpackages
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
|
ahriman.web.apispec
|
||||||
ahriman.web.middlewares
|
ahriman.web.middlewares
|
||||||
ahriman.web.schemas
|
ahriman.web.schemas
|
||||||
ahriman.web.views
|
ahriman.web.views
|
||||||
@ -14,14 +15,6 @@ Subpackages
|
|||||||
Submodules
|
Submodules
|
||||||
----------
|
----------
|
||||||
|
|
||||||
ahriman.web.apispec module
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. automodule:: ahriman.web.apispec
|
|
||||||
:members:
|
|
||||||
:no-undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
ahriman.web.cors module
|
ahriman.web.cors module
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ All extracted fields are packed as ``ahriman.models.pkgbuild_patch.PkgbuildPatch
|
|||||||
|
|
||||||
The PKGBUILD class also provides some additional functions on top of that:
|
The PKGBUILD class also provides some additional functions on top of that:
|
||||||
|
|
||||||
* Ability to extract fields defined inside ``package*()`` functions, which are in particular used for the multipackages.
|
* Ability to extract fields defined inside ``package*()`` functions, which are in particular used for the multi-packages.
|
||||||
* Shell substitution, which supports constructions ``$var`` (including ``${var}``), ``${var#(#)pattern}``, ``${var%(%)pattern}`` and ``${var/(/)pattern/replacement}`` (including ``#pattern`` and ``%pattern``).
|
* Shell substitution, which supports constructions ``$var`` (including ``${var}``), ``${var#(#)pattern}``, ``${var%(%)pattern}`` and ``${var/(/)pattern/replacement}`` (including ``#pattern`` and ``%pattern``).
|
||||||
|
|
||||||
Additional features
|
Additional features
|
||||||
|
@ -16,7 +16,7 @@ The default action (in case if no arguments provided) is ``repo-update``. Basica
|
|||||||
|
|
||||||
docker run --privileged -v /path/to/local/repo:/var/lib/ahriman arcan1s/ahriman:latest
|
docker run --privileged -v /path/to/local/repo:/var/lib/ahriman arcan1s/ahriman:latest
|
||||||
|
|
||||||
``--privileged`` flag is required to make mount possible inside container. In order to make data available outside of container, you would need to mount local (parent) directory inside container by using ``-v /path/to/local/repo:/var/lib/ahriman`` argument, where ``/path/to/local/repo`` is a path to repository on local machine. In addition, you can pass own configuration overrides by using the same ``-v`` flag, e.g.:
|
In order to make data available outside of container, you would need to mount local (parent) directory inside container by using ``-v /path/to/local/repo:/var/lib/ahriman`` argument, where ``/path/to/local/repo`` is a path to repository on local machine. In addition, you can pass own configuration overrides by using the same ``-v`` flag, e.g.:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
@ -30,6 +30,28 @@ The action can be specified during run, e.g.:
|
|||||||
|
|
||||||
For more details please refer to the docker FAQ.
|
For more details please refer to the docker FAQ.
|
||||||
|
|
||||||
|
Privileged and non-privileged container
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Examples here suggest using ``--privileged`` flag which is required for the devtools and is involved in two types of operations: tmpfs mount and cgroup manipulation. Whereas it is the easiest way to operate, it might be not really secure. The other way to make devtools working is to grant required capabilities, which can be achieved by using flags:
|
||||||
|
|
||||||
|
* ``--cap-add=SYS_ADMIN``, which grants permissions to operate with tmpfs for ``systemd-nspawn``.
|
||||||
|
* ``-v /sys/fs/cgroup:/sys/fs/cgroup`` which allows access to cgroup manipulation.
|
||||||
|
|
||||||
|
Thus, there are two possible ways to run the container:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
docker run --privileged arcan1s/ahriman:latest
|
||||||
|
|
||||||
|
and
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
docker run --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup arcan1s/ahriman:latest
|
||||||
|
|
||||||
|
but for the simplicity this FAQ will always use ``--privileged`` flag.
|
||||||
|
|
||||||
Environment variables
|
Environment variables
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -97,7 +119,7 @@ Otherwise, you would need to pass ``AHRIMAN_PORT`` and mount container network t
|
|||||||
|
|
||||||
Simple server with authentication can be found in `examples <https://github.com/arcan1s/ahriman/tree/master/recipes/web>`__ too.
|
Simple server with authentication can be found in `examples <https://github.com/arcan1s/ahriman/tree/master/recipes/web>`__ too.
|
||||||
|
|
||||||
Mutli-repository web service
|
Multi-repository web service
|
||||||
""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
Idea is pretty same as to just run web service. However, it is required to run setup commands for each repository, except for one which is specified by ``AHRIMAN_REPOSITORY`` and ``AHRIMAN_ARCHITECTURE`` variables.
|
Idea is pretty same as to just run web service. However, it is required to run setup commands for each repository, except for one which is specified by ``AHRIMAN_REPOSITORY`` and ``AHRIMAN_ARCHITECTURE`` variables.
|
||||||
|
@ -3,7 +3,7 @@ To 2.16.0
|
|||||||
|
|
||||||
This release replaces ``passlib`` dependency with ``bcrypt``.
|
This release replaces ``passlib`` dependency with ``bcrypt``.
|
||||||
|
|
||||||
The reason behind this change is that python developers have deprecated and scheduled for removal ``crypt`` module, which is used by ``passlib``. (By the way, they recommend to use ``passlib`` as a replacement.) Unfortunately, it appears that ``passlib`` is unmaintained (see `the issue <https://foss.heptapod.net/python-libs/passlib/-/issues/187>`__), so the only solution is to migrate to anoher library.
|
The reason behind this change is that python developers have deprecated and scheduled for removal ``crypt`` module, which is used by ``passlib``. (By the way, they recommend to use ``passlib`` as a replacement.) Unfortunately, it appears that ``passlib`` is unmaintained (see `the issue <https://foss.heptapod.net/python-libs/passlib/-/issues/187>`__), so the only solution is to migrate to another library.
|
||||||
|
|
||||||
Because passwords are stored as hashes, it is near to impossible to shadow change passwords in database, the manual intervention is required if:
|
Because passwords are stored as hashes, it is near to impossible to shadow change passwords in database, the manual intervention is required if:
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
pkgbase='ahriman'
|
pkgbase='ahriman'
|
||||||
pkgname=('ahriman' 'ahriman-core' 'ahriman-triggers' 'ahriman-web')
|
pkgname=('ahriman' 'ahriman-core' 'ahriman-triggers' 'ahriman-web')
|
||||||
pkgver=2.15.2
|
pkgver=2.17.2
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="ArcH linux ReposItory MANager"
|
pkgdesc="ArcH linux ReposItory MANager"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
@ -30,6 +30,7 @@ package_ahriman-core() {
|
|||||||
pkgname='ahriman-core'
|
pkgname='ahriman-core'
|
||||||
optdepends=('ahriman-triggers: additional extensions for the application'
|
optdepends=('ahriman-triggers: additional extensions for the application'
|
||||||
'ahriman-web: web server'
|
'ahriman-web: web server'
|
||||||
|
'ipython: an enhanced shell interpreter'
|
||||||
'python-boto3: sync to s3'
|
'python-boto3: sync to s3'
|
||||||
'python-cerberus: configuration validator'
|
'python-cerberus: configuration validator'
|
||||||
'python-matplotlib: usage statistics chart'
|
'python-matplotlib: usage statistics chart'
|
||||||
@ -71,8 +72,9 @@ package_ahriman-triggers() {
|
|||||||
package_ahriman-web() {
|
package_ahriman-web() {
|
||||||
pkgname='ahriman-web'
|
pkgname='ahriman-web'
|
||||||
pkgdesc="ArcH linux ReposItory MANager, web server"
|
pkgdesc="ArcH linux ReposItory MANager, web server"
|
||||||
depends=("$pkgbase-core=$pkgver" 'python-aiohttp-apispec>=3.0.0' 'python-aiohttp-cors' 'python-aiohttp-jinja2')
|
depends=("$pkgbase-core=$pkgver" 'python-aiohttp-cors' 'python-aiohttp-jinja2')
|
||||||
optdepends=('python-aioauth-client: OAuth2 authorization support'
|
optdepends=('python-aioauth-client: OAuth2 authorization support'
|
||||||
|
'python-aiohttp-apispec>=3.0.0: autogenerated API documentation'
|
||||||
'python-aiohttp-security: authorization support'
|
'python-aiohttp-security: authorization support'
|
||||||
'python-aiohttp-session: authorization support'
|
'python-aiohttp-session: authorization support'
|
||||||
'python-cryptography: authorization support')
|
'python-cryptography: authorization support')
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<nav class="navbar navbar-expand-lg">
|
<nav class="navbar navbar-expand-lg">
|
||||||
<div class="navbar-brand"><img src="/static/logo.svg" width="30" height="30" alt=""></div>
|
<div class="navbar-brand"><a href="https://github.com/arcan1s/ahriman" title="logo"><img src="/static/logo.svg" width="30" height="30" alt=""></a></div>
|
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#repositories-navbar-supported-content" aria-controls="repositories-navbar-supported-content" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#repositories-navbar-supported-content" aria-controls="repositories-navbar-supported-content" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
@ -119,7 +119,9 @@
|
|||||||
<li><a id="badge-version" class="nav-link" href="https://github.com/arcan1s/ahriman" title="sources"><i class="bi bi-github"></i> ahriman</a></li>
|
<li><a id="badge-version" class="nav-link" href="https://github.com/arcan1s/ahriman" title="sources"><i class="bi bi-github"></i> ahriman</a></li>
|
||||||
<li><a class="nav-link" href="https://github.com/arcan1s/ahriman/releases" title="releases list">releases</a></li>
|
<li><a class="nav-link" href="https://github.com/arcan1s/ahriman/releases" title="releases list">releases</a></li>
|
||||||
<li><a class="nav-link" href="https://github.com/arcan1s/ahriman/issues" title="issues tracker">report a bug</a></li>
|
<li><a class="nav-link" href="https://github.com/arcan1s/ahriman/issues" title="issues tracker">report a bug</a></li>
|
||||||
<li><a class="nav-link" href="/api-docs" title="API documentation">api</a></li>
|
{% if docs_enabled %}
|
||||||
|
<li><a class="nav-link" href="/api-docs" title="API documentation">api</a></li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{% if index_url is not none %}
|
{% if index_url is not none %}
|
||||||
|
@ -163,7 +163,7 @@
|
|||||||
const variableValueInput = document.createElement("input");
|
const variableValueInput = document.createElement("input");
|
||||||
variableValueInput.classList.add("form-control");
|
variableValueInput.classList.add("form-control");
|
||||||
variableValueInput.readOnly = true;
|
variableValueInput.readOnly = true;
|
||||||
variableValueInput.value = variable.value;
|
variableValueInput.value = JSON.stringify(variable.value);
|
||||||
|
|
||||||
const variableButtonRemove = document.createElement("button");
|
const variableButtonRemove = document.createElement("button");
|
||||||
variableButtonRemove.type = "button";
|
variableButtonRemove.type = "button";
|
||||||
|
@ -1,115 +1,117 @@
|
|||||||
# AUTOMATICALLY GENERATED by `shtab`
|
# AUTOMATICALLY GENERATED by `shtab`
|
||||||
|
|
||||||
_shtab_ahriman_subparsers=('aur-search' 'search' 'help-commands-unsafe' 'help' 'help-updates' 'help-version' 'version' 'package-add' 'add' 'package-update' 'package-changes' 'package-changes-remove' 'package-remove' 'remove' 'package-status' 'status' 'package-status-remove' 'package-status-update' 'status-update' 'patch-add' 'patch-list' 'patch-remove' 'patch-set-add' 'repo-backup' 'repo-check' 'check' 'repo-create-keyring' 'repo-create-mirrorlist' 'repo-daemon' 'daemon' 'repo-rebuild' 'rebuild' 'repo-remove-unknown' 'remove-unknown' 'repo-report' 'report' 'repo-restore' 'repo-sign' 'sign' 'repo-statistics' 'repo-status-update' 'repo-sync' 'sync' 'repo-tree' 'repo-triggers' 'repo-update' 'update' 'service-clean' 'clean' 'repo-clean' 'service-config' 'config' 'repo-config' 'service-config-validate' 'config-validate' 'repo-config-validate' 'service-key-import' 'key-import' 'service-repositories' 'service-run' 'run' 'service-setup' 'init' 'repo-init' 'repo-setup' 'setup' 'service-shell' 'shell' 'service-tree-migrate' 'user-add' 'user-list' 'user-remove' 'web')
|
_shtab_ahriman_subparsers=('add' 'aur-search' 'check' 'clean' 'config' 'config-validate' 'copy' 'daemon' 'help' 'help-commands-unsafe' 'help-updates' 'help-version' 'init' 'key-import' 'package-add' 'package-changes' 'package-changes-remove' 'package-copy' 'package-remove' 'package-status' 'package-status-remove' 'package-status-update' 'package-update' 'patch-add' 'patch-list' 'patch-remove' 'patch-set-add' 'rebuild' 'remove' 'remove-unknown' 'repo-backup' 'repo-check' 'repo-clean' 'repo-config' 'repo-config-validate' 'repo-create-keyring' 'repo-create-mirrorlist' 'repo-daemon' 'repo-init' 'repo-rebuild' 'repo-remove-unknown' 'repo-report' 'repo-restore' 'repo-setup' 'repo-sign' 'repo-statistics' 'repo-status-update' 'repo-sync' 'repo-tree' 'repo-triggers' 'repo-update' 'report' 'run' 'search' 'service-clean' 'service-config' 'service-config-validate' 'service-key-import' 'service-repositories' 'service-run' 'service-setup' 'service-shell' 'service-tree-migrate' 'setup' 'shell' 'sign' 'status' 'status-update' 'sync' 'update' 'user-add' 'user-list' 'user-remove' 'version' 'web')
|
||||||
|
|
||||||
_shtab_ahriman_option_strings=('-h' '--help' '-a' '--architecture' '-c' '--configuration' '--force' '-l' '--lock' '--log-handler' '-q' '--quiet' '--report' '--no-report' '-r' '--repository' '--unsafe' '-V' '--version' '--wait-timeout')
|
_shtab_ahriman_option_strings=('-h' '--help' '-a' '--architecture' '-c' '--configuration' '--force' '-l' '--lock' '--log-handler' '-q' '--quiet' '--report' '--no-report' '-r' '--repository' '--unsafe' '-V' '--version' '--wait-timeout')
|
||||||
|
_shtab_ahriman_add_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
||||||
_shtab_ahriman_aur_search_option_strings=('-h' '--help' '-e' '--exit-code' '--info' '--no-info' '--sort-by')
|
_shtab_ahriman_aur_search_option_strings=('-h' '--help' '-e' '--exit-code' '--info' '--no-info' '--sort-by')
|
||||||
_shtab_ahriman_search_option_strings=('-h' '--help' '-e' '--exit-code' '--info' '--no-info' '--sort-by')
|
_shtab_ahriman_check_option_strings=('-h' '--help' '--changes' '--no-changes' '--check-files' '--no-check-files' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_help_commands_unsafe_option_strings=('-h' '--help')
|
_shtab_ahriman_clean_option_strings=('-h' '--help' '--cache' '--no-cache' '--chroot' '--no-chroot' '--manual' '--no-manual' '--packages' '--no-packages' '--pacman' '--no-pacman')
|
||||||
|
_shtab_ahriman_config_option_strings=('-h' '--help' '--info' '--no-info' '--secure' '--no-secure')
|
||||||
|
_shtab_ahriman_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
|
_shtab_ahriman_copy_option_strings=('-h' '--help' '-e' '--exit-code' '--remove')
|
||||||
|
_shtab_ahriman_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '--partitions' '--no-partitions' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_help_option_strings=('-h' '--help')
|
_shtab_ahriman_help_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_help_commands_unsafe_option_strings=('-h' '--help')
|
||||||
_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_init_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
||||||
|
_shtab_ahriman_key_import_option_strings=('-h' '--help' '--key-server')
|
||||||
_shtab_ahriman_package_add_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
_shtab_ahriman_package_add_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
||||||
_shtab_ahriman_add_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
|
||||||
_shtab_ahriman_package_update_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
|
||||||
_shtab_ahriman_package_changes_option_strings=('-h' '--help' '-e' '--exit-code')
|
_shtab_ahriman_package_changes_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
_shtab_ahriman_package_changes_remove_option_strings=('-h' '--help')
|
_shtab_ahriman_package_changes_remove_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_package_copy_option_strings=('-h' '--help' '-e' '--exit-code' '--remove')
|
||||||
_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_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')
|
||||||
_shtab_ahriman_status_option_strings=('-h' '--help' '--ahriman' '-e' '--exit-code' '--info' '--no-info' '-s' '--status')
|
|
||||||
_shtab_ahriman_package_status_remove_option_strings=('-h' '--help')
|
_shtab_ahriman_package_status_remove_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_package_status_update_option_strings=('-h' '--help' '-s' '--status')
|
_shtab_ahriman_package_status_update_option_strings=('-h' '--help' '-s' '--status')
|
||||||
_shtab_ahriman_status_update_option_strings=('-h' '--help' '-s' '--status')
|
_shtab_ahriman_package_update_option_strings=('-h' '--help' '--changes' '--no-changes' '--dependencies' '--no-dependencies' '-e' '--exit-code' '--increment' '--no-increment' '-n' '--now' '-y' '--refresh' '-s' '--source' '-u' '--username' '-v' '--variable')
|
||||||
_shtab_ahriman_patch_add_option_strings=('-h' '--help')
|
_shtab_ahriman_patch_add_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_patch_list_option_strings=('-h' '--help' '-e' '--exit-code' '-v' '--variable')
|
_shtab_ahriman_patch_list_option_strings=('-h' '--help' '-e' '--exit-code' '-v' '--variable')
|
||||||
_shtab_ahriman_patch_remove_option_strings=('-h' '--help' '-v' '--variable')
|
_shtab_ahriman_patch_remove_option_strings=('-h' '--help' '-v' '--variable')
|
||||||
_shtab_ahriman_patch_set_add_option_strings=('-h' '--help' '-t' '--track')
|
_shtab_ahriman_patch_set_add_option_strings=('-h' '--help' '-t' '--track')
|
||||||
|
_shtab_ahriman_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '--increment' '--no-increment' '-e' '--exit-code' '-s' '--status' '-u' '--username')
|
||||||
|
_shtab_ahriman_remove_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
||||||
_shtab_ahriman_repo_backup_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_backup_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_check_option_strings=('-h' '--help' '--changes' '--no-changes' '--check-files' '--no-check-files' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_check_option_strings=('-h' '--help' '--changes' '--no-changes' '--check-files' '--no-check-files' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_check_option_strings=('-h' '--help' '--changes' '--no-changes' '--check-files' '--no-check-files' '-e' '--exit-code' '--vcs' '--no-vcs' '-y' '--refresh')
|
_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_config_option_strings=('-h' '--help' '--info' '--no-info' '--secure' '--no-secure')
|
||||||
|
_shtab_ahriman_repo_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
||||||
_shtab_ahriman_repo_create_keyring_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_create_keyring_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_create_mirrorlist_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_create_mirrorlist_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '--partitions' '--no-partitions' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '--partitions' '--no-partitions' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_daemon_option_strings=('-h' '--help' '-i' '--interval' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '--partitions' '--no-partitions' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_init_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
||||||
_shtab_ahriman_repo_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '--increment' '--no-increment' '-e' '--exit-code' '-s' '--status' '-u' '--username')
|
_shtab_ahriman_repo_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '--increment' '--no-increment' '-e' '--exit-code' '-s' '--status' '-u' '--username')
|
||||||
_shtab_ahriman_rebuild_option_strings=('-h' '--help' '--depends-on' '--dry-run' '--from-database' '--increment' '--no-increment' '-e' '--exit-code' '-s' '--status' '-u' '--username')
|
|
||||||
_shtab_ahriman_repo_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
_shtab_ahriman_repo_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
||||||
_shtab_ahriman_remove_unknown_option_strings=('-h' '--help' '--dry-run')
|
|
||||||
_shtab_ahriman_repo_report_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_report_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_report_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_repo_restore_option_strings=('-h' '--help' '-o' '--output')
|
_shtab_ahriman_repo_restore_option_strings=('-h' '--help' '-o' '--output')
|
||||||
|
_shtab_ahriman_repo_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
||||||
_shtab_ahriman_repo_sign_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_sign_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_sign_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_repo_statistics_option_strings=('-h' '--help' '--chart' '-e' '--event' '--from-date' '--limit' '--offset' '--to-date')
|
_shtab_ahriman_repo_statistics_option_strings=('-h' '--help' '--chart' '-e' '--event' '--from-date' '--limit' '--offset' '--to-date')
|
||||||
_shtab_ahriman_repo_status_update_option_strings=('-h' '--help' '-s' '--status')
|
_shtab_ahriman_repo_status_update_option_strings=('-h' '--help' '-s' '--status')
|
||||||
_shtab_ahriman_repo_sync_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_sync_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_sync_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_repo_tree_option_strings=('-h' '--help' '-p' '--partitions')
|
_shtab_ahriman_repo_tree_option_strings=('-h' '--help' '-p' '--partitions')
|
||||||
_shtab_ahriman_repo_triggers_option_strings=('-h' '--help')
|
_shtab_ahriman_repo_triggers_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_repo_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_repo_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
_shtab_ahriman_report_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_run_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_search_option_strings=('-h' '--help' '-e' '--exit-code' '--info' '--no-info' '--sort-by')
|
||||||
_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_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' '--info' '--no-info' '--secure' '--no-secure')
|
_shtab_ahriman_service_config_option_strings=('-h' '--help' '--info' '--no-info' '--secure' '--no-secure')
|
||||||
_shtab_ahriman_config_option_strings=('-h' '--help' '--info' '--no-info' '--secure' '--no-secure')
|
|
||||||
_shtab_ahriman_repo_config_option_strings=('-h' '--help' '--info' '--no-info' '--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_repo_config_validate_option_strings=('-h' '--help' '-e' '--exit-code')
|
|
||||||
_shtab_ahriman_service_key_import_option_strings=('-h' '--help' '--key-server')
|
_shtab_ahriman_service_key_import_option_strings=('-h' '--help' '--key-server')
|
||||||
_shtab_ahriman_key_import_option_strings=('-h' '--help' '--key-server')
|
|
||||||
_shtab_ahriman_service_repositories_option_strings=('-h' '--help' '--id-only' '--no-id-only')
|
_shtab_ahriman_service_repositories_option_strings=('-h' '--help' '--id-only' '--no-id-only')
|
||||||
_shtab_ahriman_service_run_option_strings=('-h' '--help')
|
_shtab_ahriman_service_run_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_run_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_service_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
_shtab_ahriman_service_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
||||||
_shtab_ahriman_init_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
_shtab_ahriman_service_shell_option_strings=('-h' '--help' '-o' '--output')
|
||||||
_shtab_ahriman_repo_init_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
|
||||||
_shtab_ahriman_repo_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
|
||||||
_shtab_ahriman_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
|
||||||
_shtab_ahriman_service_shell_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_shell_option_strings=('-h' '--help')
|
|
||||||
_shtab_ahriman_service_tree_migrate_option_strings=('-h' '--help')
|
_shtab_ahriman_service_tree_migrate_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_setup_option_strings=('-h' '--help' '--build-as-user' '--from-configuration' '--generate-salt' '--no-generate-salt' '--makeflags-jobs' '--no-makeflags-jobs' '--mirror' '--multilib' '--no-multilib' '--packager' '--server' '--sign-key' '--sign-target' '--web-port' '--web-unix-socket')
|
||||||
|
_shtab_ahriman_shell_option_strings=('-h' '--help' '-o' '--output')
|
||||||
|
_shtab_ahriman_sign_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_status_option_strings=('-h' '--help' '--ahriman' '-e' '--exit-code' '--info' '--no-info' '-s' '--status')
|
||||||
|
_shtab_ahriman_status_update_option_strings=('-h' '--help' '-s' '--status')
|
||||||
|
_shtab_ahriman_sync_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_update_option_strings=('-h' '--help' '--aur' '--no-aur' '--changes' '--no-changes' '--check-files' '--no-check-files' '--dependencies' '--no-dependencies' '--dry-run' '-e' '--exit-code' '--increment' '--no-increment' '--local' '--no-local' '--manual' '--no-manual' '-u' '--username' '--vcs' '--no-vcs' '-y' '--refresh')
|
||||||
_shtab_ahriman_user_add_option_strings=('-h' '--help' '--key' '--packager' '-p' '--password' '-R' '--role')
|
_shtab_ahriman_user_add_option_strings=('-h' '--help' '--key' '--packager' '-p' '--password' '-R' '--role')
|
||||||
_shtab_ahriman_user_list_option_strings=('-h' '--help' '-e' '--exit-code' '-R' '--role')
|
_shtab_ahriman_user_list_option_strings=('-h' '--help' '-e' '--exit-code' '-R' '--role')
|
||||||
_shtab_ahriman_user_remove_option_strings=('-h' '--help')
|
_shtab_ahriman_user_remove_option_strings=('-h' '--help')
|
||||||
|
_shtab_ahriman_version_option_strings=('-h' '--help')
|
||||||
_shtab_ahriman_web_option_strings=('-h' '--help')
|
_shtab_ahriman_web_option_strings=('-h' '--help')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_shtab_ahriman_pos_0_choices=('aur-search' 'search' 'help-commands-unsafe' 'help' 'help-updates' 'help-version' 'version' 'package-add' 'add' 'package-update' 'package-changes' 'package-changes-remove' 'package-remove' 'remove' 'package-status' 'status' 'package-status-remove' 'package-status-update' 'status-update' 'patch-add' 'patch-list' 'patch-remove' 'patch-set-add' 'repo-backup' 'repo-check' 'check' 'repo-create-keyring' 'repo-create-mirrorlist' 'repo-daemon' 'daemon' 'repo-rebuild' 'rebuild' 'repo-remove-unknown' 'remove-unknown' 'repo-report' 'report' 'repo-restore' 'repo-sign' 'sign' 'repo-statistics' 'repo-status-update' 'repo-sync' 'sync' 'repo-tree' 'repo-triggers' 'repo-update' 'update' 'service-clean' 'clean' 'repo-clean' 'service-config' 'config' 'repo-config' 'service-config-validate' 'config-validate' 'repo-config-validate' 'service-key-import' 'key-import' 'service-repositories' 'service-run' 'run' 'service-setup' 'init' 'repo-init' 'repo-setup' 'setup' 'service-shell' 'shell' 'service-tree-migrate' 'user-add' 'user-list' 'user-remove' 'web')
|
_shtab_ahriman_pos_0_choices=('add' 'aur-search' 'check' 'clean' 'config' 'config-validate' 'copy' 'daemon' 'help' 'help-commands-unsafe' 'help-updates' 'help-version' 'init' 'key-import' 'package-add' 'package-changes' 'package-changes-remove' 'package-copy' 'package-remove' 'package-status' 'package-status-remove' 'package-status-update' 'package-update' 'patch-add' 'patch-list' 'patch-remove' 'patch-set-add' 'rebuild' 'remove' 'remove-unknown' 'repo-backup' 'repo-check' 'repo-clean' 'repo-config' 'repo-config-validate' 'repo-create-keyring' 'repo-create-mirrorlist' 'repo-daemon' 'repo-init' 'repo-rebuild' 'repo-remove-unknown' 'repo-report' 'repo-restore' 'repo-setup' 'repo-sign' 'repo-statistics' 'repo-status-update' 'repo-sync' 'repo-tree' 'repo-triggers' 'repo-update' 'report' 'run' 'search' 'service-clean' 'service-config' 'service-config-validate' 'service-key-import' 'service-repositories' 'service-run' 'service-setup' 'service-shell' 'service-tree-migrate' 'setup' 'shell' 'sign' 'status' 'status-update' 'sync' 'update' 'user-add' 'user-list' 'user-remove' 'version' 'web')
|
||||||
_shtab_ahriman___log_handler_choices=('console' 'syslog' 'journald')
|
_shtab_ahriman___log_handler_choices=('console' 'syslog' 'journald')
|
||||||
_shtab_ahriman_aur_search___sort_by_choices=('description' 'first_submitted' 'id' 'last_modified' 'maintainer' 'name' 'num_votes' 'out_of_date' 'package_base' 'package_base_id' 'popularity' 'repository' 'submitter' 'url' 'url_path' 'version')
|
|
||||||
_shtab_ahriman_search___sort_by_choices=('description' 'first_submitted' 'id' 'last_modified' 'maintainer' 'name' 'num_votes' 'out_of_date' 'package_base' 'package_base_id' 'popularity' 'repository' 'submitter' 'url' 'url_path' 'version')
|
|
||||||
_shtab_ahriman_package_add__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
|
||||||
_shtab_ahriman_package_add___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
|
||||||
_shtab_ahriman_add__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
_shtab_ahriman_add__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
_shtab_ahriman_add___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
_shtab_ahriman_add___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
_shtab_ahriman_package_update__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
_shtab_ahriman_aur_search___sort_by_choices=('description' 'first_submitted' 'id' 'last_modified' 'maintainer' 'name' 'num_votes' 'out_of_date' 'package_base' 'package_base_id' 'popularity' 'repository' 'submitter' 'url' 'url_path' 'version')
|
||||||
_shtab_ahriman_package_update___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
_shtab_ahriman_init___sign_target_choices=('disabled' 'packages' 'repository')
|
||||||
|
_shtab_ahriman_package_add__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
|
_shtab_ahriman_package_add___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
_shtab_ahriman_package_status__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_status__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_package_status___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_status___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_status__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
|
||||||
_shtab_ahriman_status___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
|
||||||
_shtab_ahriman_package_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_package_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_update__s_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
_shtab_ahriman_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_package_update___source_choices=('auto' 'archive' 'aur' 'directory' 'local' 'remote' 'repository')
|
||||||
_shtab_ahriman_repo_rebuild__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
|
||||||
_shtab_ahriman_repo_rebuild___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
|
||||||
_shtab_ahriman_rebuild__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_rebuild__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_rebuild___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_rebuild___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_repo_init___sign_target_choices=('disabled' 'packages' 'repository')
|
||||||
|
_shtab_ahriman_repo_rebuild__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_repo_rebuild___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_repo_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
||||||
_shtab_ahriman_repo_statistics__e_choices=('package-outdated' 'package-removed' 'package-update-failed' 'package-updated')
|
_shtab_ahriman_repo_statistics__e_choices=('package-outdated' 'package-removed' 'package-update-failed' 'package-updated')
|
||||||
_shtab_ahriman_repo_statistics___event_choices=('package-outdated' 'package-removed' 'package-update-failed' 'package-updated')
|
_shtab_ahriman_repo_statistics___event_choices=('package-outdated' 'package-removed' 'package-update-failed' 'package-updated')
|
||||||
_shtab_ahriman_repo_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_repo_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_repo_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
_shtab_ahriman_repo_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_search___sort_by_choices=('description' 'first_submitted' 'id' 'last_modified' 'maintainer' 'name' 'num_votes' 'out_of_date' 'package_base' 'package_base_id' 'popularity' 'repository' 'submitter' 'url' 'url_path' 'version')
|
||||||
_shtab_ahriman_service_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
_shtab_ahriman_service_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
||||||
_shtab_ahriman_init___sign_target_choices=('disabled' 'packages' 'repository')
|
|
||||||
_shtab_ahriman_repo_init___sign_target_choices=('disabled' 'packages' 'repository')
|
|
||||||
_shtab_ahriman_repo_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
|
||||||
_shtab_ahriman_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
_shtab_ahriman_setup___sign_target_choices=('disabled' 'packages' 'repository')
|
||||||
|
_shtab_ahriman_status__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_status___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_status_update__s_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
|
_shtab_ahriman_status_update___status_choices=('unknown' 'pending' 'building' 'failed' 'success')
|
||||||
_shtab_ahriman_user_add__R_choices=('unauthorized' 'read' 'reporter' 'full')
|
_shtab_ahriman_user_add__R_choices=('unauthorized' 'read' 'reporter' 'full')
|
||||||
_shtab_ahriman_user_add___role_choices=('unauthorized' 'read' 'reporter' 'full')
|
_shtab_ahriman_user_add___role_choices=('unauthorized' 'read' 'reporter' 'full')
|
||||||
_shtab_ahriman_user_list__R_choices=('unauthorized' 'read' 'reporter' 'full')
|
_shtab_ahriman_user_list__R_choices=('unauthorized' 'read' 'reporter' 'full')
|
||||||
@ -126,48 +128,6 @@ _shtab_ahriman___no_report_nargs=0
|
|||||||
_shtab_ahriman___unsafe_nargs=0
|
_shtab_ahriman___unsafe_nargs=0
|
||||||
_shtab_ahriman__V_nargs=0
|
_shtab_ahriman__V_nargs=0
|
||||||
_shtab_ahriman___version_nargs=0
|
_shtab_ahriman___version_nargs=0
|
||||||
_shtab_ahriman_aur_search_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_aur_search__h_nargs=0
|
|
||||||
_shtab_ahriman_aur_search___help_nargs=0
|
|
||||||
_shtab_ahriman_aur_search__e_nargs=0
|
|
||||||
_shtab_ahriman_aur_search___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_aur_search___info_nargs=0
|
|
||||||
_shtab_ahriman_aur_search___no_info_nargs=0
|
|
||||||
_shtab_ahriman_search_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_search__h_nargs=0
|
|
||||||
_shtab_ahriman_search___help_nargs=0
|
|
||||||
_shtab_ahriman_search__e_nargs=0
|
|
||||||
_shtab_ahriman_search___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_search___info_nargs=0
|
|
||||||
_shtab_ahriman_search___no_info_nargs=0
|
|
||||||
_shtab_ahriman_help_commands_unsafe_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_help_commands_unsafe__h_nargs=0
|
|
||||||
_shtab_ahriman_help_commands_unsafe___help_nargs=0
|
|
||||||
_shtab_ahriman_help__h_nargs=0
|
|
||||||
_shtab_ahriman_help___help_nargs=0
|
|
||||||
_shtab_ahriman_help_updates__h_nargs=0
|
|
||||||
_shtab_ahriman_help_updates___help_nargs=0
|
|
||||||
_shtab_ahriman_help_updates__e_nargs=0
|
|
||||||
_shtab_ahriman_help_updates___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_help_version__h_nargs=0
|
|
||||||
_shtab_ahriman_help_version___help_nargs=0
|
|
||||||
_shtab_ahriman_version__h_nargs=0
|
|
||||||
_shtab_ahriman_version___help_nargs=0
|
|
||||||
_shtab_ahriman_package_add_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_package_add__h_nargs=0
|
|
||||||
_shtab_ahriman_package_add___help_nargs=0
|
|
||||||
_shtab_ahriman_package_add___changes_nargs=0
|
|
||||||
_shtab_ahriman_package_add___no_changes_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___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_package_add___increment_nargs=0
|
|
||||||
_shtab_ahriman_package_add___no_increment_nargs=0
|
|
||||||
_shtab_ahriman_package_add__n_nargs=0
|
|
||||||
_shtab_ahriman_package_add___now_nargs=0
|
|
||||||
_shtab_ahriman_package_add__y_nargs=0
|
|
||||||
_shtab_ahriman_package_add___refresh_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
|
||||||
@ -183,6 +143,142 @@ _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_aur_search_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_aur_search__h_nargs=0
|
||||||
|
_shtab_ahriman_aur_search___help_nargs=0
|
||||||
|
_shtab_ahriman_aur_search__e_nargs=0
|
||||||
|
_shtab_ahriman_aur_search___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_aur_search___info_nargs=0
|
||||||
|
_shtab_ahriman_aur_search___no_info_nargs=0
|
||||||
|
_shtab_ahriman_check_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_check__h_nargs=0
|
||||||
|
_shtab_ahriman_check___help_nargs=0
|
||||||
|
_shtab_ahriman_check___changes_nargs=0
|
||||||
|
_shtab_ahriman_check___no_changes_nargs=0
|
||||||
|
_shtab_ahriman_check___check_files_nargs=0
|
||||||
|
_shtab_ahriman_check___no_check_files_nargs=0
|
||||||
|
_shtab_ahriman_check__e_nargs=0
|
||||||
|
_shtab_ahriman_check___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_check___vcs_nargs=0
|
||||||
|
_shtab_ahriman_check___no_vcs_nargs=0
|
||||||
|
_shtab_ahriman_check__y_nargs=0
|
||||||
|
_shtab_ahriman_check___refresh_nargs=0
|
||||||
|
_shtab_ahriman_clean__h_nargs=0
|
||||||
|
_shtab_ahriman_clean___help_nargs=0
|
||||||
|
_shtab_ahriman_clean___cache_nargs=0
|
||||||
|
_shtab_ahriman_clean___no_cache_nargs=0
|
||||||
|
_shtab_ahriman_clean___chroot_nargs=0
|
||||||
|
_shtab_ahriman_clean___no_chroot_nargs=0
|
||||||
|
_shtab_ahriman_clean___manual_nargs=0
|
||||||
|
_shtab_ahriman_clean___no_manual_nargs=0
|
||||||
|
_shtab_ahriman_clean___packages_nargs=0
|
||||||
|
_shtab_ahriman_clean___no_packages_nargs=0
|
||||||
|
_shtab_ahriman_clean___pacman_nargs=0
|
||||||
|
_shtab_ahriman_clean___no_pacman_nargs=0
|
||||||
|
_shtab_ahriman_config__h_nargs=0
|
||||||
|
_shtab_ahriman_config___help_nargs=0
|
||||||
|
_shtab_ahriman_config___info_nargs=0
|
||||||
|
_shtab_ahriman_config___no_info_nargs=0
|
||||||
|
_shtab_ahriman_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_config___no_secure_nargs=0
|
||||||
|
_shtab_ahriman_config_validate__h_nargs=0
|
||||||
|
_shtab_ahriman_config_validate___help_nargs=0
|
||||||
|
_shtab_ahriman_config_validate__e_nargs=0
|
||||||
|
_shtab_ahriman_config_validate___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_copy_pos_1_nargs=+
|
||||||
|
_shtab_ahriman_copy__h_nargs=0
|
||||||
|
_shtab_ahriman_copy___help_nargs=0
|
||||||
|
_shtab_ahriman_copy__e_nargs=0
|
||||||
|
_shtab_ahriman_copy___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_copy___remove_nargs=0
|
||||||
|
_shtab_ahriman_daemon__h_nargs=0
|
||||||
|
_shtab_ahriman_daemon___help_nargs=0
|
||||||
|
_shtab_ahriman_daemon___aur_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_aur_nargs=0
|
||||||
|
_shtab_ahriman_daemon___changes_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_changes_nargs=0
|
||||||
|
_shtab_ahriman_daemon___check_files_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_check_files_nargs=0
|
||||||
|
_shtab_ahriman_daemon___dependencies_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_dependencies_nargs=0
|
||||||
|
_shtab_ahriman_daemon___dry_run_nargs=0
|
||||||
|
_shtab_ahriman_daemon___increment_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_increment_nargs=0
|
||||||
|
_shtab_ahriman_daemon___local_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_local_nargs=0
|
||||||
|
_shtab_ahriman_daemon___manual_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_manual_nargs=0
|
||||||
|
_shtab_ahriman_daemon___partitions_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_partitions_nargs=0
|
||||||
|
_shtab_ahriman_daemon___vcs_nargs=0
|
||||||
|
_shtab_ahriman_daemon___no_vcs_nargs=0
|
||||||
|
_shtab_ahriman_daemon__y_nargs=0
|
||||||
|
_shtab_ahriman_daemon___refresh_nargs=0
|
||||||
|
_shtab_ahriman_help__h_nargs=0
|
||||||
|
_shtab_ahriman_help___help_nargs=0
|
||||||
|
_shtab_ahriman_help_commands_unsafe_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_help_commands_unsafe__h_nargs=0
|
||||||
|
_shtab_ahriman_help_commands_unsafe___help_nargs=0
|
||||||
|
_shtab_ahriman_help_updates__h_nargs=0
|
||||||
|
_shtab_ahriman_help_updates___help_nargs=0
|
||||||
|
_shtab_ahriman_help_updates__e_nargs=0
|
||||||
|
_shtab_ahriman_help_updates___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_help_version__h_nargs=0
|
||||||
|
_shtab_ahriman_help_version___help_nargs=0
|
||||||
|
_shtab_ahriman_init__h_nargs=0
|
||||||
|
_shtab_ahriman_init___help_nargs=0
|
||||||
|
_shtab_ahriman_init___generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_init___no_generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_init___makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_init___no_makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_init___multilib_nargs=0
|
||||||
|
_shtab_ahriman_init___no_multilib_nargs=0
|
||||||
|
_shtab_ahriman_key_import__h_nargs=0
|
||||||
|
_shtab_ahriman_key_import___help_nargs=0
|
||||||
|
_shtab_ahriman_package_add_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_package_add__h_nargs=0
|
||||||
|
_shtab_ahriman_package_add___help_nargs=0
|
||||||
|
_shtab_ahriman_package_add___changes_nargs=0
|
||||||
|
_shtab_ahriman_package_add___no_changes_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___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_package_add___increment_nargs=0
|
||||||
|
_shtab_ahriman_package_add___no_increment_nargs=0
|
||||||
|
_shtab_ahriman_package_add__n_nargs=0
|
||||||
|
_shtab_ahriman_package_add___now_nargs=0
|
||||||
|
_shtab_ahriman_package_add__y_nargs=0
|
||||||
|
_shtab_ahriman_package_add___refresh_nargs=0
|
||||||
|
_shtab_ahriman_package_changes__h_nargs=0
|
||||||
|
_shtab_ahriman_package_changes___help_nargs=0
|
||||||
|
_shtab_ahriman_package_changes__e_nargs=0
|
||||||
|
_shtab_ahriman_package_changes___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_package_changes_remove__h_nargs=0
|
||||||
|
_shtab_ahriman_package_changes_remove___help_nargs=0
|
||||||
|
_shtab_ahriman_package_copy_pos_1_nargs=+
|
||||||
|
_shtab_ahriman_package_copy__h_nargs=0
|
||||||
|
_shtab_ahriman_package_copy___help_nargs=0
|
||||||
|
_shtab_ahriman_package_copy__e_nargs=0
|
||||||
|
_shtab_ahriman_package_copy___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_package_copy___remove_nargs=0
|
||||||
|
_shtab_ahriman_package_remove_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_package_remove__h_nargs=0
|
||||||
|
_shtab_ahriman_package_remove___help_nargs=0
|
||||||
|
_shtab_ahriman_package_status_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_package_status__h_nargs=0
|
||||||
|
_shtab_ahriman_package_status___help_nargs=0
|
||||||
|
_shtab_ahriman_package_status___ahriman_nargs=0
|
||||||
|
_shtab_ahriman_package_status__e_nargs=0
|
||||||
|
_shtab_ahriman_package_status___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_package_status___info_nargs=0
|
||||||
|
_shtab_ahriman_package_status___no_info_nargs=0
|
||||||
|
_shtab_ahriman_package_status_remove_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_package_status_remove__h_nargs=0
|
||||||
|
_shtab_ahriman_package_status_remove___help_nargs=0
|
||||||
|
_shtab_ahriman_package_status_update_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_package_status_update__h_nargs=0
|
||||||
|
_shtab_ahriman_package_status_update___help_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
|
||||||
@ -198,43 +294,6 @@ _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_changes__h_nargs=0
|
|
||||||
_shtab_ahriman_package_changes___help_nargs=0
|
|
||||||
_shtab_ahriman_package_changes__e_nargs=0
|
|
||||||
_shtab_ahriman_package_changes___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_package_changes_remove__h_nargs=0
|
|
||||||
_shtab_ahriman_package_changes_remove___help_nargs=0
|
|
||||||
_shtab_ahriman_package_remove_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_package_remove__h_nargs=0
|
|
||||||
_shtab_ahriman_package_remove___help_nargs=0
|
|
||||||
_shtab_ahriman_remove_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_remove__h_nargs=0
|
|
||||||
_shtab_ahriman_remove___help_nargs=0
|
|
||||||
_shtab_ahriman_package_status_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_package_status__h_nargs=0
|
|
||||||
_shtab_ahriman_package_status___help_nargs=0
|
|
||||||
_shtab_ahriman_package_status___ahriman_nargs=0
|
|
||||||
_shtab_ahriman_package_status__e_nargs=0
|
|
||||||
_shtab_ahriman_package_status___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_package_status___info_nargs=0
|
|
||||||
_shtab_ahriman_package_status___no_info_nargs=0
|
|
||||||
_shtab_ahriman_status_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_status__h_nargs=0
|
|
||||||
_shtab_ahriman_status___help_nargs=0
|
|
||||||
_shtab_ahriman_status___ahriman_nargs=0
|
|
||||||
_shtab_ahriman_status__e_nargs=0
|
|
||||||
_shtab_ahriman_status___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_status___info_nargs=0
|
|
||||||
_shtab_ahriman_status___no_info_nargs=0
|
|
||||||
_shtab_ahriman_package_status_remove_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_package_status_remove__h_nargs=0
|
|
||||||
_shtab_ahriman_package_status_remove___help_nargs=0
|
|
||||||
_shtab_ahriman_package_status_update_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_package_status_update__h_nargs=0
|
|
||||||
_shtab_ahriman_package_status_update___help_nargs=0
|
|
||||||
_shtab_ahriman_status_update_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_status_update__h_nargs=0
|
|
||||||
_shtab_ahriman_status_update___help_nargs=0
|
|
||||||
_shtab_ahriman_patch_add__h_nargs=0
|
_shtab_ahriman_patch_add__h_nargs=0
|
||||||
_shtab_ahriman_patch_add___help_nargs=0
|
_shtab_ahriman_patch_add___help_nargs=0
|
||||||
_shtab_ahriman_patch_list__h_nargs=0
|
_shtab_ahriman_patch_list__h_nargs=0
|
||||||
@ -245,6 +304,20 @@ _shtab_ahriman_patch_remove__h_nargs=0
|
|||||||
_shtab_ahriman_patch_remove___help_nargs=0
|
_shtab_ahriman_patch_remove___help_nargs=0
|
||||||
_shtab_ahriman_patch_set_add__h_nargs=0
|
_shtab_ahriman_patch_set_add__h_nargs=0
|
||||||
_shtab_ahriman_patch_set_add___help_nargs=0
|
_shtab_ahriman_patch_set_add___help_nargs=0
|
||||||
|
_shtab_ahriman_rebuild__h_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___help_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___dry_run_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___from_database_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___increment_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___no_increment_nargs=0
|
||||||
|
_shtab_ahriman_rebuild__e_nargs=0
|
||||||
|
_shtab_ahriman_rebuild___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_remove_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_remove__h_nargs=0
|
||||||
|
_shtab_ahriman_remove___help_nargs=0
|
||||||
|
_shtab_ahriman_remove_unknown__h_nargs=0
|
||||||
|
_shtab_ahriman_remove_unknown___help_nargs=0
|
||||||
|
_shtab_ahriman_remove_unknown___dry_run_nargs=0
|
||||||
_shtab_ahriman_repo_backup__h_nargs=0
|
_shtab_ahriman_repo_backup__h_nargs=0
|
||||||
_shtab_ahriman_repo_backup___help_nargs=0
|
_shtab_ahriman_repo_backup___help_nargs=0
|
||||||
_shtab_ahriman_repo_check_pos_0_nargs=*
|
_shtab_ahriman_repo_check_pos_0_nargs=*
|
||||||
@ -260,19 +333,28 @@ _shtab_ahriman_repo_check___vcs_nargs=0
|
|||||||
_shtab_ahriman_repo_check___no_vcs_nargs=0
|
_shtab_ahriman_repo_check___no_vcs_nargs=0
|
||||||
_shtab_ahriman_repo_check__y_nargs=0
|
_shtab_ahriman_repo_check__y_nargs=0
|
||||||
_shtab_ahriman_repo_check___refresh_nargs=0
|
_shtab_ahriman_repo_check___refresh_nargs=0
|
||||||
_shtab_ahriman_check_pos_0_nargs=*
|
_shtab_ahriman_repo_clean__h_nargs=0
|
||||||
_shtab_ahriman_check__h_nargs=0
|
_shtab_ahriman_repo_clean___help_nargs=0
|
||||||
_shtab_ahriman_check___help_nargs=0
|
_shtab_ahriman_repo_clean___cache_nargs=0
|
||||||
_shtab_ahriman_check___changes_nargs=0
|
_shtab_ahriman_repo_clean___no_cache_nargs=0
|
||||||
_shtab_ahriman_check___no_changes_nargs=0
|
_shtab_ahriman_repo_clean___chroot_nargs=0
|
||||||
_shtab_ahriman_check___check_files_nargs=0
|
_shtab_ahriman_repo_clean___no_chroot_nargs=0
|
||||||
_shtab_ahriman_check___no_check_files_nargs=0
|
_shtab_ahriman_repo_clean___manual_nargs=0
|
||||||
_shtab_ahriman_check__e_nargs=0
|
_shtab_ahriman_repo_clean___no_manual_nargs=0
|
||||||
_shtab_ahriman_check___exit_code_nargs=0
|
_shtab_ahriman_repo_clean___packages_nargs=0
|
||||||
_shtab_ahriman_check___vcs_nargs=0
|
_shtab_ahriman_repo_clean___no_packages_nargs=0
|
||||||
_shtab_ahriman_check___no_vcs_nargs=0
|
_shtab_ahriman_repo_clean___pacman_nargs=0
|
||||||
_shtab_ahriman_check__y_nargs=0
|
_shtab_ahriman_repo_clean___no_pacman_nargs=0
|
||||||
_shtab_ahriman_check___refresh_nargs=0
|
_shtab_ahriman_repo_config__h_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___info_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___no_info_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_repo_config___no_secure_nargs=0
|
||||||
|
_shtab_ahriman_repo_config_validate__h_nargs=0
|
||||||
|
_shtab_ahriman_repo_config_validate___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_config_validate__e_nargs=0
|
||||||
|
_shtab_ahriman_repo_config_validate___exit_code_nargs=0
|
||||||
_shtab_ahriman_repo_create_keyring__h_nargs=0
|
_shtab_ahriman_repo_create_keyring__h_nargs=0
|
||||||
_shtab_ahriman_repo_create_keyring___help_nargs=0
|
_shtab_ahriman_repo_create_keyring___help_nargs=0
|
||||||
_shtab_ahriman_repo_create_mirrorlist__h_nargs=0
|
_shtab_ahriman_repo_create_mirrorlist__h_nargs=0
|
||||||
@ -300,29 +382,14 @@ _shtab_ahriman_repo_daemon___vcs_nargs=0
|
|||||||
_shtab_ahriman_repo_daemon___no_vcs_nargs=0
|
_shtab_ahriman_repo_daemon___no_vcs_nargs=0
|
||||||
_shtab_ahriman_repo_daemon__y_nargs=0
|
_shtab_ahriman_repo_daemon__y_nargs=0
|
||||||
_shtab_ahriman_repo_daemon___refresh_nargs=0
|
_shtab_ahriman_repo_daemon___refresh_nargs=0
|
||||||
_shtab_ahriman_daemon__h_nargs=0
|
_shtab_ahriman_repo_init__h_nargs=0
|
||||||
_shtab_ahriman_daemon___help_nargs=0
|
_shtab_ahriman_repo_init___help_nargs=0
|
||||||
_shtab_ahriman_daemon___aur_nargs=0
|
_shtab_ahriman_repo_init___generate_salt_nargs=0
|
||||||
_shtab_ahriman_daemon___no_aur_nargs=0
|
_shtab_ahriman_repo_init___no_generate_salt_nargs=0
|
||||||
_shtab_ahriman_daemon___changes_nargs=0
|
_shtab_ahriman_repo_init___makeflags_jobs_nargs=0
|
||||||
_shtab_ahriman_daemon___no_changes_nargs=0
|
_shtab_ahriman_repo_init___no_makeflags_jobs_nargs=0
|
||||||
_shtab_ahriman_daemon___check_files_nargs=0
|
_shtab_ahriman_repo_init___multilib_nargs=0
|
||||||
_shtab_ahriman_daemon___no_check_files_nargs=0
|
_shtab_ahriman_repo_init___no_multilib_nargs=0
|
||||||
_shtab_ahriman_daemon___dependencies_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_dependencies_nargs=0
|
|
||||||
_shtab_ahriman_daemon___dry_run_nargs=0
|
|
||||||
_shtab_ahriman_daemon___increment_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_increment_nargs=0
|
|
||||||
_shtab_ahriman_daemon___local_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_local_nargs=0
|
|
||||||
_shtab_ahriman_daemon___manual_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_manual_nargs=0
|
|
||||||
_shtab_ahriman_daemon___partitions_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_partitions_nargs=0
|
|
||||||
_shtab_ahriman_daemon___vcs_nargs=0
|
|
||||||
_shtab_ahriman_daemon___no_vcs_nargs=0
|
|
||||||
_shtab_ahriman_daemon__y_nargs=0
|
|
||||||
_shtab_ahriman_daemon___refresh_nargs=0
|
|
||||||
_shtab_ahriman_repo_rebuild__h_nargs=0
|
_shtab_ahriman_repo_rebuild__h_nargs=0
|
||||||
_shtab_ahriman_repo_rebuild___help_nargs=0
|
_shtab_ahriman_repo_rebuild___help_nargs=0
|
||||||
_shtab_ahriman_repo_rebuild___dry_run_nargs=0
|
_shtab_ahriman_repo_rebuild___dry_run_nargs=0
|
||||||
@ -331,40 +398,30 @@ _shtab_ahriman_repo_rebuild___increment_nargs=0
|
|||||||
_shtab_ahriman_repo_rebuild___no_increment_nargs=0
|
_shtab_ahriman_repo_rebuild___no_increment_nargs=0
|
||||||
_shtab_ahriman_repo_rebuild__e_nargs=0
|
_shtab_ahriman_repo_rebuild__e_nargs=0
|
||||||
_shtab_ahriman_repo_rebuild___exit_code_nargs=0
|
_shtab_ahriman_repo_rebuild___exit_code_nargs=0
|
||||||
_shtab_ahriman_rebuild__h_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___help_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___dry_run_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___from_database_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___increment_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___no_increment_nargs=0
|
|
||||||
_shtab_ahriman_rebuild__e_nargs=0
|
|
||||||
_shtab_ahriman_rebuild___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_repo_remove_unknown__h_nargs=0
|
_shtab_ahriman_repo_remove_unknown__h_nargs=0
|
||||||
_shtab_ahriman_repo_remove_unknown___help_nargs=0
|
_shtab_ahriman_repo_remove_unknown___help_nargs=0
|
||||||
_shtab_ahriman_repo_remove_unknown___dry_run_nargs=0
|
_shtab_ahriman_repo_remove_unknown___dry_run_nargs=0
|
||||||
_shtab_ahriman_remove_unknown__h_nargs=0
|
|
||||||
_shtab_ahriman_remove_unknown___help_nargs=0
|
|
||||||
_shtab_ahriman_remove_unknown___dry_run_nargs=0
|
|
||||||
_shtab_ahriman_repo_report__h_nargs=0
|
_shtab_ahriman_repo_report__h_nargs=0
|
||||||
_shtab_ahriman_repo_report___help_nargs=0
|
_shtab_ahriman_repo_report___help_nargs=0
|
||||||
_shtab_ahriman_report__h_nargs=0
|
|
||||||
_shtab_ahriman_report___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_restore__h_nargs=0
|
_shtab_ahriman_repo_restore__h_nargs=0
|
||||||
_shtab_ahriman_repo_restore___help_nargs=0
|
_shtab_ahriman_repo_restore___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup__h_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___help_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___no_generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___no_makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___multilib_nargs=0
|
||||||
|
_shtab_ahriman_repo_setup___no_multilib_nargs=0
|
||||||
_shtab_ahriman_repo_sign_pos_0_nargs=*
|
_shtab_ahriman_repo_sign_pos_0_nargs=*
|
||||||
_shtab_ahriman_repo_sign__h_nargs=0
|
_shtab_ahriman_repo_sign__h_nargs=0
|
||||||
_shtab_ahriman_repo_sign___help_nargs=0
|
_shtab_ahriman_repo_sign___help_nargs=0
|
||||||
_shtab_ahriman_sign_pos_0_nargs=*
|
|
||||||
_shtab_ahriman_sign__h_nargs=0
|
|
||||||
_shtab_ahriman_sign___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_statistics__h_nargs=0
|
_shtab_ahriman_repo_statistics__h_nargs=0
|
||||||
_shtab_ahriman_repo_statistics___help_nargs=0
|
_shtab_ahriman_repo_statistics___help_nargs=0
|
||||||
_shtab_ahriman_repo_status_update__h_nargs=0
|
_shtab_ahriman_repo_status_update__h_nargs=0
|
||||||
_shtab_ahriman_repo_status_update___help_nargs=0
|
_shtab_ahriman_repo_status_update___help_nargs=0
|
||||||
_shtab_ahriman_repo_sync__h_nargs=0
|
_shtab_ahriman_repo_sync__h_nargs=0
|
||||||
_shtab_ahriman_repo_sync___help_nargs=0
|
_shtab_ahriman_repo_sync___help_nargs=0
|
||||||
_shtab_ahriman_sync__h_nargs=0
|
|
||||||
_shtab_ahriman_sync___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_tree__h_nargs=0
|
_shtab_ahriman_repo_tree__h_nargs=0
|
||||||
_shtab_ahriman_repo_tree___help_nargs=0
|
_shtab_ahriman_repo_tree___help_nargs=0
|
||||||
_shtab_ahriman_repo_triggers_pos_0_nargs=*
|
_shtab_ahriman_repo_triggers_pos_0_nargs=*
|
||||||
@ -394,6 +451,91 @@ _shtab_ahriman_repo_update___vcs_nargs=0
|
|||||||
_shtab_ahriman_repo_update___no_vcs_nargs=0
|
_shtab_ahriman_repo_update___no_vcs_nargs=0
|
||||||
_shtab_ahriman_repo_update__y_nargs=0
|
_shtab_ahriman_repo_update__y_nargs=0
|
||||||
_shtab_ahriman_repo_update___refresh_nargs=0
|
_shtab_ahriman_repo_update___refresh_nargs=0
|
||||||
|
_shtab_ahriman_report__h_nargs=0
|
||||||
|
_shtab_ahriman_report___help_nargs=0
|
||||||
|
_shtab_ahriman_run_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_run__h_nargs=0
|
||||||
|
_shtab_ahriman_run___help_nargs=0
|
||||||
|
_shtab_ahriman_search_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_search__h_nargs=0
|
||||||
|
_shtab_ahriman_search___help_nargs=0
|
||||||
|
_shtab_ahriman_search__e_nargs=0
|
||||||
|
_shtab_ahriman_search___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_search___info_nargs=0
|
||||||
|
_shtab_ahriman_search___no_info_nargs=0
|
||||||
|
_shtab_ahriman_service_clean__h_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___help_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___cache_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___no_cache_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___chroot_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___no_chroot_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___manual_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___no_manual_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___packages_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___no_packages_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___pacman_nargs=0
|
||||||
|
_shtab_ahriman_service_clean___no_pacman_nargs=0
|
||||||
|
_shtab_ahriman_service_config__h_nargs=0
|
||||||
|
_shtab_ahriman_service_config___help_nargs=0
|
||||||
|
_shtab_ahriman_service_config___info_nargs=0
|
||||||
|
_shtab_ahriman_service_config___no_info_nargs=0
|
||||||
|
_shtab_ahriman_service_config___secure_nargs=0
|
||||||
|
_shtab_ahriman_service_config___no_secure_nargs=0
|
||||||
|
_shtab_ahriman_service_config_validate__h_nargs=0
|
||||||
|
_shtab_ahriman_service_config_validate___help_nargs=0
|
||||||
|
_shtab_ahriman_service_config_validate__e_nargs=0
|
||||||
|
_shtab_ahriman_service_config_validate___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_service_key_import__h_nargs=0
|
||||||
|
_shtab_ahriman_service_key_import___help_nargs=0
|
||||||
|
_shtab_ahriman_service_repositories__h_nargs=0
|
||||||
|
_shtab_ahriman_service_repositories___help_nargs=0
|
||||||
|
_shtab_ahriman_service_repositories___id_only_nargs=0
|
||||||
|
_shtab_ahriman_service_repositories___no_id_only_nargs=0
|
||||||
|
_shtab_ahriman_service_run_pos_0_nargs=+
|
||||||
|
_shtab_ahriman_service_run__h_nargs=0
|
||||||
|
_shtab_ahriman_service_run___help_nargs=0
|
||||||
|
_shtab_ahriman_service_setup__h_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___help_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___no_generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___no_makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___multilib_nargs=0
|
||||||
|
_shtab_ahriman_service_setup___no_multilib_nargs=0
|
||||||
|
_shtab_ahriman_service_shell__h_nargs=0
|
||||||
|
_shtab_ahriman_service_shell___help_nargs=0
|
||||||
|
_shtab_ahriman_service_shell__v_nargs=0
|
||||||
|
_shtab_ahriman_service_shell___verbose_nargs=0
|
||||||
|
_shtab_ahriman_service_tree_migrate__h_nargs=0
|
||||||
|
_shtab_ahriman_service_tree_migrate___help_nargs=0
|
||||||
|
_shtab_ahriman_setup__h_nargs=0
|
||||||
|
_shtab_ahriman_setup___help_nargs=0
|
||||||
|
_shtab_ahriman_setup___generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_setup___no_generate_salt_nargs=0
|
||||||
|
_shtab_ahriman_setup___makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_setup___no_makeflags_jobs_nargs=0
|
||||||
|
_shtab_ahriman_setup___multilib_nargs=0
|
||||||
|
_shtab_ahriman_setup___no_multilib_nargs=0
|
||||||
|
_shtab_ahriman_shell__h_nargs=0
|
||||||
|
_shtab_ahriman_shell___help_nargs=0
|
||||||
|
_shtab_ahriman_shell__v_nargs=0
|
||||||
|
_shtab_ahriman_shell___verbose_nargs=0
|
||||||
|
_shtab_ahriman_sign_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_sign__h_nargs=0
|
||||||
|
_shtab_ahriman_sign___help_nargs=0
|
||||||
|
_shtab_ahriman_status_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_status__h_nargs=0
|
||||||
|
_shtab_ahriman_status___help_nargs=0
|
||||||
|
_shtab_ahriman_status___ahriman_nargs=0
|
||||||
|
_shtab_ahriman_status__e_nargs=0
|
||||||
|
_shtab_ahriman_status___exit_code_nargs=0
|
||||||
|
_shtab_ahriman_status___info_nargs=0
|
||||||
|
_shtab_ahriman_status___no_info_nargs=0
|
||||||
|
_shtab_ahriman_status_update_pos_0_nargs=*
|
||||||
|
_shtab_ahriman_status_update__h_nargs=0
|
||||||
|
_shtab_ahriman_status_update___help_nargs=0
|
||||||
|
_shtab_ahriman_sync__h_nargs=0
|
||||||
|
_shtab_ahriman_sync___help_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
|
||||||
@ -418,136 +560,6 @@ _shtab_ahriman_update___vcs_nargs=0
|
|||||||
_shtab_ahriman_update___no_vcs_nargs=0
|
_shtab_ahriman_update___no_vcs_nargs=0
|
||||||
_shtab_ahriman_update__y_nargs=0
|
_shtab_ahriman_update__y_nargs=0
|
||||||
_shtab_ahriman_update___refresh_nargs=0
|
_shtab_ahriman_update___refresh_nargs=0
|
||||||
_shtab_ahriman_service_clean__h_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___help_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___cache_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___no_cache_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___chroot_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___no_chroot_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___manual_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___no_manual_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___packages_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___no_packages_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___pacman_nargs=0
|
|
||||||
_shtab_ahriman_service_clean___no_pacman_nargs=0
|
|
||||||
_shtab_ahriman_clean__h_nargs=0
|
|
||||||
_shtab_ahriman_clean___help_nargs=0
|
|
||||||
_shtab_ahriman_clean___cache_nargs=0
|
|
||||||
_shtab_ahriman_clean___no_cache_nargs=0
|
|
||||||
_shtab_ahriman_clean___chroot_nargs=0
|
|
||||||
_shtab_ahriman_clean___no_chroot_nargs=0
|
|
||||||
_shtab_ahriman_clean___manual_nargs=0
|
|
||||||
_shtab_ahriman_clean___no_manual_nargs=0
|
|
||||||
_shtab_ahriman_clean___packages_nargs=0
|
|
||||||
_shtab_ahriman_clean___no_packages_nargs=0
|
|
||||||
_shtab_ahriman_clean___pacman_nargs=0
|
|
||||||
_shtab_ahriman_clean___no_pacman_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean__h_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___cache_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___no_cache_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___chroot_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___no_chroot_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___manual_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___no_manual_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___packages_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___no_packages_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___pacman_nargs=0
|
|
||||||
_shtab_ahriman_repo_clean___no_pacman_nargs=0
|
|
||||||
_shtab_ahriman_service_config__h_nargs=0
|
|
||||||
_shtab_ahriman_service_config___help_nargs=0
|
|
||||||
_shtab_ahriman_service_config___info_nargs=0
|
|
||||||
_shtab_ahriman_service_config___no_info_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___help_nargs=0
|
|
||||||
_shtab_ahriman_config___info_nargs=0
|
|
||||||
_shtab_ahriman_config___no_info_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___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_config___info_nargs=0
|
|
||||||
_shtab_ahriman_repo_config___no_info_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___help_nargs=0
|
|
||||||
_shtab_ahriman_service_config_validate__e_nargs=0
|
|
||||||
_shtab_ahriman_service_config_validate___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_config_validate__h_nargs=0
|
|
||||||
_shtab_ahriman_config_validate___help_nargs=0
|
|
||||||
_shtab_ahriman_config_validate__e_nargs=0
|
|
||||||
_shtab_ahriman_config_validate___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_repo_config_validate__h_nargs=0
|
|
||||||
_shtab_ahriman_repo_config_validate___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_config_validate__e_nargs=0
|
|
||||||
_shtab_ahriman_repo_config_validate___exit_code_nargs=0
|
|
||||||
_shtab_ahriman_service_key_import__h_nargs=0
|
|
||||||
_shtab_ahriman_service_key_import___help_nargs=0
|
|
||||||
_shtab_ahriman_key_import__h_nargs=0
|
|
||||||
_shtab_ahriman_key_import___help_nargs=0
|
|
||||||
_shtab_ahriman_service_repositories__h_nargs=0
|
|
||||||
_shtab_ahriman_service_repositories___help_nargs=0
|
|
||||||
_shtab_ahriman_service_repositories___id_only_nargs=0
|
|
||||||
_shtab_ahriman_service_repositories___no_id_only_nargs=0
|
|
||||||
_shtab_ahriman_service_run_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_service_run__h_nargs=0
|
|
||||||
_shtab_ahriman_service_run___help_nargs=0
|
|
||||||
_shtab_ahriman_run_pos_0_nargs=+
|
|
||||||
_shtab_ahriman_run__h_nargs=0
|
|
||||||
_shtab_ahriman_run___help_nargs=0
|
|
||||||
_shtab_ahriman_service_setup__h_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___help_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___no_generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___no_makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___multilib_nargs=0
|
|
||||||
_shtab_ahriman_service_setup___no_multilib_nargs=0
|
|
||||||
_shtab_ahriman_init__h_nargs=0
|
|
||||||
_shtab_ahriman_init___help_nargs=0
|
|
||||||
_shtab_ahriman_init___generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_init___no_generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_init___makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_init___no_makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_init___multilib_nargs=0
|
|
||||||
_shtab_ahriman_init___no_multilib_nargs=0
|
|
||||||
_shtab_ahriman_repo_init__h_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___no_generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___no_makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___multilib_nargs=0
|
|
||||||
_shtab_ahriman_repo_init___no_multilib_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup__h_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___help_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___no_generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___no_makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___multilib_nargs=0
|
|
||||||
_shtab_ahriman_repo_setup___no_multilib_nargs=0
|
|
||||||
_shtab_ahriman_setup__h_nargs=0
|
|
||||||
_shtab_ahriman_setup___help_nargs=0
|
|
||||||
_shtab_ahriman_setup___generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_setup___no_generate_salt_nargs=0
|
|
||||||
_shtab_ahriman_setup___makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_setup___no_makeflags_jobs_nargs=0
|
|
||||||
_shtab_ahriman_setup___multilib_nargs=0
|
|
||||||
_shtab_ahriman_setup___no_multilib_nargs=0
|
|
||||||
_shtab_ahriman_service_shell__h_nargs=0
|
|
||||||
_shtab_ahriman_service_shell___help_nargs=0
|
|
||||||
_shtab_ahriman_service_shell__v_nargs=0
|
|
||||||
_shtab_ahriman_service_shell___verbose_nargs=0
|
|
||||||
_shtab_ahriman_shell__h_nargs=0
|
|
||||||
_shtab_ahriman_shell___help_nargs=0
|
|
||||||
_shtab_ahriman_shell__v_nargs=0
|
|
||||||
_shtab_ahriman_shell___verbose_nargs=0
|
|
||||||
_shtab_ahriman_service_tree_migrate__h_nargs=0
|
|
||||||
_shtab_ahriman_service_tree_migrate___help_nargs=0
|
|
||||||
_shtab_ahriman_user_add__h_nargs=0
|
_shtab_ahriman_user_add__h_nargs=0
|
||||||
_shtab_ahriman_user_add___help_nargs=0
|
_shtab_ahriman_user_add___help_nargs=0
|
||||||
_shtab_ahriman_user_list__h_nargs=0
|
_shtab_ahriman_user_list__h_nargs=0
|
||||||
@ -556,6 +568,8 @@ _shtab_ahriman_user_list__e_nargs=0
|
|||||||
_shtab_ahriman_user_list___exit_code_nargs=0
|
_shtab_ahriman_user_list___exit_code_nargs=0
|
||||||
_shtab_ahriman_user_remove__h_nargs=0
|
_shtab_ahriman_user_remove__h_nargs=0
|
||||||
_shtab_ahriman_user_remove___help_nargs=0
|
_shtab_ahriman_user_remove___help_nargs=0
|
||||||
|
_shtab_ahriman_version__h_nargs=0
|
||||||
|
_shtab_ahriman_version___help_nargs=0
|
||||||
_shtab_ahriman_web__h_nargs=0
|
_shtab_ahriman_web__h_nargs=0
|
||||||
_shtab_ahriman_web___help_nargs=0
|
_shtab_ahriman_web___help_nargs=0
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
.TH AHRIMAN "1" "2024\-09\-26" "ahriman" "Generated Python Manual"
|
.TH AHRIMAN "1" "2025\-02\-23" "ahriman" "Generated Python Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
ahriman
|
ahriman
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B ahriman
|
.B ahriman
|
||||||
[-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--log-handler {console,syslog,journald}] [-q] [--report | --no-report] [-r REPOSITORY] [--unsafe] [-V] [--wait-timeout WAIT_TIMEOUT] {aur-search,search,help-commands-unsafe,help,help-updates,help-version,version,package-add,add,package-update,package-changes,package-changes-remove,package-remove,remove,package-status,status,package-status-remove,package-status-update,status-update,patch-add,patch-list,patch-remove,patch-set-add,repo-backup,repo-check,check,repo-create-keyring,repo-create-mirrorlist,repo-daemon,daemon,repo-rebuild,rebuild,repo-remove-unknown,remove-unknown,repo-report,report,repo-restore,repo-sign,sign,repo-statistics,repo-status-update,repo-sync,sync,repo-tree,repo-triggers,repo-update,update,service-clean,clean,repo-clean,service-config,config,repo-config,service-config-validate,config-validate,repo-config-validate,service-key-import,key-import,service-repositories,service-run,run,service-setup,init,repo-init,repo-setup,setup,service-shell,shell,service-tree-migrate,user-add,user-list,user-remove,web} ...
|
[-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--log-handler {console,syslog,journald}] [-q] [--report | --no-report] [-r REPOSITORY] [--unsafe] [-V] [--wait-timeout WAIT_TIMEOUT] {add,aur-search,check,clean,config,config-validate,copy,daemon,help,help-commands-unsafe,help-updates,help-version,init,key-import,package-add,package-changes,package-changes-remove,package-copy,package-remove,package-status,package-status-remove,package-status-update,package-update,patch-add,patch-list,patch-remove,patch-set-add,rebuild,remove,remove-unknown,repo-backup,repo-check,repo-clean,repo-config,repo-config-validate,repo-create-keyring,repo-create-mirrorlist,repo-daemon,repo-init,repo-rebuild,repo-remove-unknown,repo-report,repo-restore,repo-setup,repo-sign,repo-statistics,repo-status-update,repo-sync,repo-tree,repo-triggers,repo-update,report,run,search,service-clean,service-config,service-config-validate,service-key-import,service-repositories,service-run,service-setup,service-shell,service-tree-migrate,setup,shell,sign,status,status-update,sync,update,user-add,user-list,user-remove,version,web} ...
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
ArcH linux ReposItory MANager
|
ArcH linux ReposItory MANager
|
||||||
|
|
||||||
@ -59,12 +59,12 @@ COMMAND
|
|||||||
\fBahriman\fR \fI\,aur\-search\/\fR
|
\fBahriman\fR \fI\,aur\-search\/\fR
|
||||||
search for package
|
search for package
|
||||||
.TP
|
.TP
|
||||||
\fBahriman\fR \fI\,help\-commands\-unsafe\/\fR
|
|
||||||
list unsafe commands
|
|
||||||
.TP
|
|
||||||
\fBahriman\fR \fI\,help\/\fR
|
\fBahriman\fR \fI\,help\/\fR
|
||||||
show help message
|
show help message
|
||||||
.TP
|
.TP
|
||||||
|
\fBahriman\fR \fI\,help\-commands\-unsafe\/\fR
|
||||||
|
list unsafe commands
|
||||||
|
.TP
|
||||||
\fBahriman\fR \fI\,help\-updates\/\fR
|
\fBahriman\fR \fI\,help\-updates\/\fR
|
||||||
check for service updates
|
check for service updates
|
||||||
.TP
|
.TP
|
||||||
@ -80,6 +80,9 @@ get package changes
|
|||||||
\fBahriman\fR \fI\,package\-changes\-remove\/\fR
|
\fBahriman\fR \fI\,package\-changes\-remove\/\fR
|
||||||
remove package changes
|
remove package changes
|
||||||
.TP
|
.TP
|
||||||
|
\fBahriman\fR \fI\,package\-copy\/\fR
|
||||||
|
copy package from another repository
|
||||||
|
.TP
|
||||||
\fBahriman\fR \fI\,package\-remove\/\fR
|
\fBahriman\fR \fI\,package\-remove\/\fR
|
||||||
remove package
|
remove package
|
||||||
.TP
|
.TP
|
||||||
@ -216,6 +219,15 @@ show additional package information
|
|||||||
sort field by this field. In case if two packages have the same value of the specified field, they will be always sorted
|
sort field by this field. In case if two packages have the same value of the specified field, they will be always sorted
|
||||||
by name
|
by name
|
||||||
|
|
||||||
|
.SH COMMAND \fI\,'ahriman help'\/\fR
|
||||||
|
usage: ahriman help [\-h] [subcommand]
|
||||||
|
|
||||||
|
show help message for application or command and exit
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBsubcommand\fR
|
||||||
|
show help message for specific command
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman help\-commands\-unsafe'\/\fR
|
.SH COMMAND \fI\,'ahriman help\-commands\-unsafe'\/\fR
|
||||||
usage: ahriman help\-commands\-unsafe [\-h] [subcommand ...]
|
usage: ahriman help\-commands\-unsafe [\-h] [subcommand ...]
|
||||||
|
|
||||||
@ -226,15 +238,6 @@ list unsafe commands as defined in default args
|
|||||||
instead of showing commands, just test command line for unsafe subcommand and return 0 in case if command is safe and 1
|
instead of showing commands, just test command line for unsafe subcommand and return 0 in case if command is safe and 1
|
||||||
otherwise
|
otherwise
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman help'\/\fR
|
|
||||||
usage: ahriman help [\-h] [subcommand]
|
|
||||||
|
|
||||||
show help message for application or command and exit
|
|
||||||
|
|
||||||
.TP
|
|
||||||
\fBsubcommand\fR
|
|
||||||
show help message for specific command
|
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman help\-updates'\/\fR
|
.SH COMMAND \fI\,'ahriman help\-updates'\/\fR
|
||||||
usage: ahriman help\-updates [\-h] [\-e]
|
usage: ahriman help\-updates [\-h] [\-e]
|
||||||
|
|
||||||
@ -322,6 +325,28 @@ remove the package changes stored remotely
|
|||||||
\fBpackage\fR
|
\fBpackage\fR
|
||||||
package base
|
package base
|
||||||
|
|
||||||
|
.SH COMMAND \fI\,'ahriman package\-copy'\/\fR
|
||||||
|
usage: ahriman package\-copy [\-h] [\-e] [\-\-remove] source package [package ...]
|
||||||
|
|
||||||
|
copy package and its metadata from another repository
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBsource\fR
|
||||||
|
source repository name
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBpackage\fR
|
||||||
|
package base
|
||||||
|
|
||||||
|
.SH OPTIONS \fI\,'ahriman package\-copy'\/\fR
|
||||||
|
.TP
|
||||||
|
\fB\-e\fR, \fB\-\-exit\-code\fR
|
||||||
|
return non\-zero exit status if result is empty
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-remove\fR
|
||||||
|
remove package from the source repository after
|
||||||
|
|
||||||
.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 ...]
|
||||||
|
|
||||||
@ -915,7 +940,7 @@ port of the web service
|
|||||||
path to unix socket used for interprocess communications
|
path to unix socket used for interprocess communications
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman service\-shell'\/\fR
|
.SH COMMAND \fI\,'ahriman service\-shell'\/\fR
|
||||||
usage: ahriman service\-shell [\-h] [code]
|
usage: ahriman service\-shell [\-h] [\-o OUTPUT] [code]
|
||||||
|
|
||||||
drop into python shell
|
drop into python shell
|
||||||
|
|
||||||
@ -923,6 +948,11 @@ drop into python shell
|
|||||||
\fBcode\fR
|
\fBcode\fR
|
||||||
instead of dropping into shell, just execute the specified code
|
instead of dropping into shell, just execute the specified code
|
||||||
|
|
||||||
|
.SH OPTIONS \fI\,'ahriman service\-shell'\/\fR
|
||||||
|
.TP
|
||||||
|
\fB\-o\fR \fI\,OUTPUT\/\fR, \fB\-\-output\fR \fI\,OUTPUT\/\fR
|
||||||
|
output commands and result to the file
|
||||||
|
|
||||||
.SH COMMAND \fI\,'ahriman service\-tree\-migrate'\/\fR
|
.SH COMMAND \fI\,'ahriman service\-tree\-migrate'\/\fR
|
||||||
usage: ahriman service\-tree\-migrate [\-h]
|
usage: ahriman service\-tree\-migrate [\-h]
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ _shtab_ahriman_commands() {
|
|||||||
"clean:remove local caches"
|
"clean:remove local caches"
|
||||||
"config:dump configuration for the specified architecture"
|
"config:dump configuration for the specified architecture"
|
||||||
"config-validate:validate configuration and print found errors"
|
"config-validate:validate configuration and print found errors"
|
||||||
|
"copy:copy package and its metadata from another repository"
|
||||||
"daemon:start process which periodically will run update process"
|
"daemon:start process which periodically will run update process"
|
||||||
"help:show help message for application or command and exit"
|
"help:show help message for application or command and exit"
|
||||||
"help-commands-unsafe:list unsafe commands as defined in default args"
|
"help-commands-unsafe:list unsafe commands as defined in default args"
|
||||||
@ -21,6 +22,7 @@ _shtab_ahriman_commands() {
|
|||||||
"package-add:add existing or new package to the build queue"
|
"package-add:add existing or new package to the build queue"
|
||||||
"package-changes:retrieve package changes stored in database"
|
"package-changes:retrieve package changes stored in database"
|
||||||
"package-changes-remove:remove the package changes stored remotely"
|
"package-changes-remove:remove the package changes stored remotely"
|
||||||
|
"package-copy:copy package and its metadata from another repository"
|
||||||
"package-remove:remove package from the repository"
|
"package-remove:remove package from the repository"
|
||||||
"package-status:request status of the package"
|
"package-status:request status of the package"
|
||||||
"package-status-remove:remove the package from the status page"
|
"package-status-remove:remove the package from the status page"
|
||||||
@ -151,6 +153,14 @@ _shtab_ahriman_config_validate_options=(
|
|||||||
{-e,--exit-code}"[return non-zero exit status if configuration is invalid (default\: False)]"
|
{-e,--exit-code}"[return non-zero exit status if configuration is invalid (default\: False)]"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_shtab_ahriman_copy_options=(
|
||||||
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{-e,--exit-code}"[return non-zero exit status if result is empty (default\: False)]"
|
||||||
|
"--remove[remove package from the source repository after (default\: False)]"
|
||||||
|
":source repository name:"
|
||||||
|
"(*):package base:"
|
||||||
|
)
|
||||||
|
|
||||||
_shtab_ahriman_daemon_options=(
|
_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 (default\: 43200)]:interval:"
|
{-i,--interval}"[interval between runs in seconds (default\: 43200)]:interval:"
|
||||||
@ -234,6 +244,14 @@ _shtab_ahriman_package_changes_remove_options=(
|
|||||||
":package base:"
|
":package base:"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_shtab_ahriman_package_copy_options=(
|
||||||
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{-e,--exit-code}"[return non-zero exit status if result is empty (default\: False)]"
|
||||||
|
"--remove[remove package from the source repository after (default\: False)]"
|
||||||
|
":source repository name:"
|
||||||
|
"(*):package base:"
|
||||||
|
)
|
||||||
|
|
||||||
_shtab_ahriman_package_remove_options=(
|
_shtab_ahriman_package_remove_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
"(*):package name or base:"
|
"(*):package name or base:"
|
||||||
@ -565,6 +583,7 @@ _shtab_ahriman_service_setup_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_service_shell_options=(
|
_shtab_ahriman_service_shell_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{-o,--output}"[output commands and result to the file (default\: None)]:output:"
|
||||||
":instead of dropping into shell, just execute the specified code (default\: None):"
|
":instead of dropping into shell, just execute the specified code (default\: None):"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -590,6 +609,7 @@ _shtab_ahriman_setup_options=(
|
|||||||
|
|
||||||
_shtab_ahriman_shell_options=(
|
_shtab_ahriman_shell_options=(
|
||||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||||
|
{-o,--output}"[output commands and result to the file (default\: None)]:output:"
|
||||||
":instead of dropping into shell, just execute the specified code (default\: None):"
|
":instead of dropping into shell, just execute the specified code (default\: None):"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -684,6 +704,7 @@ _shtab_ahriman() {
|
|||||||
clean) _arguments -C -s $_shtab_ahriman_clean_options ;;
|
clean) _arguments -C -s $_shtab_ahriman_clean_options ;;
|
||||||
config) _arguments -C -s $_shtab_ahriman_config_options ;;
|
config) _arguments -C -s $_shtab_ahriman_config_options ;;
|
||||||
config-validate) _arguments -C -s $_shtab_ahriman_config_validate_options ;;
|
config-validate) _arguments -C -s $_shtab_ahriman_config_validate_options ;;
|
||||||
|
copy) _arguments -C -s $_shtab_ahriman_copy_options ;;
|
||||||
daemon) _arguments -C -s $_shtab_ahriman_daemon_options ;;
|
daemon) _arguments -C -s $_shtab_ahriman_daemon_options ;;
|
||||||
help) _arguments -C -s $_shtab_ahriman_help_options ;;
|
help) _arguments -C -s $_shtab_ahriman_help_options ;;
|
||||||
help-commands-unsafe) _arguments -C -s $_shtab_ahriman_help_commands_unsafe_options ;;
|
help-commands-unsafe) _arguments -C -s $_shtab_ahriman_help_commands_unsafe_options ;;
|
||||||
@ -694,6 +715,7 @@ _shtab_ahriman() {
|
|||||||
package-add) _arguments -C -s $_shtab_ahriman_package_add_options ;;
|
package-add) _arguments -C -s $_shtab_ahriman_package_add_options ;;
|
||||||
package-changes) _arguments -C -s $_shtab_ahriman_package_changes_options ;;
|
package-changes) _arguments -C -s $_shtab_ahriman_package_changes_options ;;
|
||||||
package-changes-remove) _arguments -C -s $_shtab_ahriman_package_changes_remove_options ;;
|
package-changes-remove) _arguments -C -s $_shtab_ahriman_package_changes_remove_options ;;
|
||||||
|
package-copy) _arguments -C -s $_shtab_ahriman_package_copy_options ;;
|
||||||
package-remove) _arguments -C -s $_shtab_ahriman_package_remove_options ;;
|
package-remove) _arguments -C -s $_shtab_ahriman_package_remove_options ;;
|
||||||
package-status) _arguments -C -s $_shtab_ahriman_package_status_options ;;
|
package-status) _arguments -C -s $_shtab_ahriman_package_status_options ;;
|
||||||
package-status-remove) _arguments -C -s $_shtab_ahriman_package_status_remove_options ;;
|
package-status-remove) _arguments -C -s $_shtab_ahriman_package_status_remove_options ;;
|
||||||
|
@ -60,6 +60,9 @@ pacman = [
|
|||||||
s3 = [
|
s3 = [
|
||||||
"boto3",
|
"boto3",
|
||||||
]
|
]
|
||||||
|
shell = [
|
||||||
|
"IPython"
|
||||||
|
]
|
||||||
stats = [
|
stats = [
|
||||||
"matplotlib",
|
"matplotlib",
|
||||||
]
|
]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -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.15.2"
|
__version__ = "2.17.2"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -198,8 +198,7 @@ class Patch(Handler):
|
|||||||
else:
|
else:
|
||||||
patch = patch_path.read_text(encoding="utf8")
|
patch = patch_path.read_text(encoding="utf8")
|
||||||
# remove spaces around the patch and parse to correct type
|
# remove spaces around the patch and parse to correct type
|
||||||
parsed = PkgbuildPatch.parse(patch.strip())
|
return PkgbuildPatch.parse(variable, patch.strip())
|
||||||
return PkgbuildPatch(variable, parsed)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def patch_set_create(application: Application, package_base: str, patch: PkgbuildPatch) -> None:
|
def patch_set_create(application: Application, package_base: str, patch: PkgbuildPatch) -> None:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -21,7 +21,7 @@ import argparse
|
|||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pwd import getpwuid
|
from pwd import getpwuid
|
||||||
from urllib.parse import quote_plus as urlencode
|
from urllib.parse import quote_plus as url_encode
|
||||||
|
|
||||||
from ahriman.application.application import Application
|
from ahriman.application.application import Application
|
||||||
from ahriman.application.handlers.handler import Handler, SubParserAction
|
from ahriman.application.handlers.handler import Handler, SubParserAction
|
||||||
@ -174,7 +174,7 @@ class Setup(Handler):
|
|||||||
if args.web_unix_socket is not None:
|
if args.web_unix_socket is not None:
|
||||||
unix_socket = str(args.web_unix_socket)
|
unix_socket = str(args.web_unix_socket)
|
||||||
configuration.set_option("web", "unix_socket", unix_socket)
|
configuration.set_option("web", "unix_socket", unix_socket)
|
||||||
configuration.set_option("status", "address", f"http+unix://{urlencode(unix_socket)}")
|
configuration.set_option("status", "address", f"http+unix://{url_encode(unix_socket)}")
|
||||||
|
|
||||||
if args.generate_salt:
|
if args.generate_salt:
|
||||||
configuration.set_option("auth", "salt", User.generate_password(20))
|
configuration.set_option("auth", "salt", User.generate_password(20))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -18,12 +18,12 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
import argparse
|
import argparse
|
||||||
import code
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from ahriman.application.handlers.handler import Handler, SubParserAction
|
from ahriman.application.handlers.handler import Handler, SubParserAction
|
||||||
|
from ahriman.application.interactive_shell import InteractiveShell
|
||||||
from ahriman.core.configuration import Configuration
|
from ahriman.core.configuration import Configuration
|
||||||
from ahriman.core.formatters import StringPrinter
|
from ahriman.core.formatters import StringPrinter
|
||||||
from ahriman.models.repository_id import RepositoryId
|
from ahriman.models.repository_id import RepositoryId
|
||||||
@ -58,11 +58,13 @@ class Shell(Handler):
|
|||||||
"configuration": configuration,
|
"configuration": configuration,
|
||||||
"repository_id": repository_id,
|
"repository_id": repository_id,
|
||||||
}
|
}
|
||||||
|
console = InteractiveShell(locals=local_variables)
|
||||||
|
|
||||||
if args.code is None:
|
match args.code:
|
||||||
code.interact(local=local_variables)
|
case None:
|
||||||
else:
|
console.interact()
|
||||||
code.InteractiveConsole(locals=local_variables).runcode(args.code)
|
case snippet:
|
||||||
|
console.runcode(snippet)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _set_service_shell_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
def _set_service_shell_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
||||||
@ -79,6 +81,7 @@ class Shell(Handler):
|
|||||||
description="drop into python shell")
|
description="drop into python shell")
|
||||||
parser.add_argument("code", help="instead of dropping into shell, just execute the specified code", nargs="?")
|
parser.add_argument("code", help="instead of dropping into shell, just execute the specified code", nargs="?")
|
||||||
parser.add_argument("-v", "--verbose", help=argparse.SUPPRESS, action="store_true")
|
parser.add_argument("-v", "--verbose", help=argparse.SUPPRESS, action="store_true")
|
||||||
|
parser.add_argument("-o", "--output", help="output commands and result to the file", type=Path)
|
||||||
parser.set_defaults(lock=None, report=False)
|
parser.set_defaults(lock=None, report=False)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -54,7 +54,7 @@ class StatusUpdate(Handler):
|
|||||||
case Action.Update if args.package:
|
case Action.Update if args.package:
|
||||||
# update packages statuses
|
# update packages statuses
|
||||||
for package in args.package:
|
for package in args.package:
|
||||||
client.package_update(package, args.status)
|
client.package_status_update(package, args.status)
|
||||||
case Action.Update:
|
case Action.Update:
|
||||||
# update service status
|
# update service status
|
||||||
client.status_update(args.status)
|
client.status_update(args.status)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
60
src/ahriman/application/interactive_shell.py
Normal file
60
src/ahriman/application/interactive_shell.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
|
#
|
||||||
|
# This file is part of ahriman
|
||||||
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
from code import InteractiveConsole
|
||||||
|
from importlib.util import find_spec
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
class InteractiveShell(InteractiveConsole):
|
||||||
|
"""
|
||||||
|
wrapper around :class:`code.InteractiveConsole` to pass :func:`interact()` to IPython shell
|
||||||
|
"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def has_ipython() -> bool:
|
||||||
|
"""
|
||||||
|
check if IPython shell is available
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: ``True`` if IPython shell is available, ``False`` otherwise
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return find_spec("IPython.terminal.embed") is not None
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def interact(self, *args: Any, **kwargs: Any) -> None:
|
||||||
|
"""
|
||||||
|
pass controller to IPython shell
|
||||||
|
|
||||||
|
Args:
|
||||||
|
*args(Any): positional arguments
|
||||||
|
**kwargs(Any): keyword arguments
|
||||||
|
"""
|
||||||
|
if self.has_ipython():
|
||||||
|
from IPython.terminal.embed import InteractiveShellEmbed
|
||||||
|
|
||||||
|
shell = InteractiveShellEmbed(user_ns=self.locals) # type: ignore[no-untyped-call]
|
||||||
|
shell.show_banner() # type: ignore[no-untyped-call]
|
||||||
|
shell.interact() # type: ignore[no-untyped-call]
|
||||||
|
else:
|
||||||
|
# fallback to default
|
||||||
|
import readline # pylint: disable=unused-import
|
||||||
|
InteractiveConsole.interact(self, *args, **kwargs)
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -41,6 +41,7 @@ class PkgbuildToken(StrEnum):
|
|||||||
FunctionDeclaration(PkgbuildToken): (class attribute) function declaration token
|
FunctionDeclaration(PkgbuildToken): (class attribute) function declaration token
|
||||||
FunctionEnds(PkgbuildToken): (class attribute) function ends token
|
FunctionEnds(PkgbuildToken): (class attribute) function ends token
|
||||||
FunctionStarts(PkgbuildToken): (class attribute) function starts token
|
FunctionStarts(PkgbuildToken): (class attribute) function starts token
|
||||||
|
NewLine(PkgbuildToken): (class attribute) new line token
|
||||||
"""
|
"""
|
||||||
|
|
||||||
ArrayStarts = "("
|
ArrayStarts = "("
|
||||||
@ -54,6 +55,8 @@ class PkgbuildToken(StrEnum):
|
|||||||
FunctionStarts = "{"
|
FunctionStarts = "{"
|
||||||
FunctionEnds = "}"
|
FunctionEnds = "}"
|
||||||
|
|
||||||
|
NewLine = "\n"
|
||||||
|
|
||||||
|
|
||||||
class PkgbuildParser(shlex.shlex):
|
class PkgbuildParser(shlex.shlex):
|
||||||
"""
|
"""
|
||||||
@ -146,7 +149,7 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
# reset state
|
# reset state
|
||||||
buffer, prefix = [], None
|
buffer, prefix = [], None
|
||||||
|
|
||||||
# we have already prefix string, so we are in progress of expansion
|
# we have already got prefix string, so we are in progress of expansion
|
||||||
# we always operate the last element, so this matches ",", "next"
|
# we always operate the last element, so this matches ",", "next"
|
||||||
case (PkgbuildToken.Comma, _) if prefix is not None:
|
case (PkgbuildToken.Comma, _) if prefix is not None:
|
||||||
buffer.append(f"{prefix}{second}")
|
buffer.append(f"{prefix}{second}")
|
||||||
@ -168,37 +171,24 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
def _is_escaped(self) -> bool:
|
def _is_escaped(self) -> bool:
|
||||||
"""
|
"""
|
||||||
check if the last element was quoted. ``shlex.shlex`` parser doesn't provide information about was the token
|
check if the last element was quoted. ``shlex.shlex`` parser doesn't provide information about was the token
|
||||||
quoted or not, thus there is no difference between "'#'" (diez in quotes) and "#" (diez without quotes). This
|
quoted or not, thus there is no difference between "'#'" (sharp in quotes) and "#" (sharp without quotes). This
|
||||||
method simply rolls back to the last non-space character and check if it is a quotation mark
|
method simply rolls back to the last non-space character and check if it is a quotation mark
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: ``True`` if the previous element of the stream is a quote or escaped and ``False`` otherwise
|
bool: ``True`` if the previous element of the stream is a quote or escaped and ``False`` otherwise
|
||||||
"""
|
"""
|
||||||
# wrapper around reading utf symbols from random position of the stream
|
|
||||||
def read_last() -> tuple[int, str]:
|
|
||||||
while (position := self._io.tell()) > 0:
|
|
||||||
try:
|
|
||||||
return position, self._io.read(1)
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
self._io.seek(position - 1)
|
|
||||||
|
|
||||||
raise PkgbuildParserError("reached starting position, no valid symbols found")
|
|
||||||
|
|
||||||
current_position = self._io.tell()
|
current_position = self._io.tell()
|
||||||
|
|
||||||
last_char = penultimate_char = None
|
last_char = penultimate_char = None
|
||||||
index = current_position - 1
|
index = current_position - 1
|
||||||
while index > 0:
|
while index > 0:
|
||||||
self._io.seek(index)
|
index, last_char = self._read_last(index)
|
||||||
|
|
||||||
index, last_char = read_last()
|
|
||||||
if last_char.isspace():
|
if last_char.isspace():
|
||||||
index -= 1
|
index -= 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if index > 1:
|
if index > 1:
|
||||||
self._io.seek(index - 1)
|
_, penultimate_char = self._read_last(index - 1)
|
||||||
_, penultimate_char = read_last()
|
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -226,8 +216,8 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
pass
|
pass
|
||||||
case PkgbuildToken.ArrayEnds:
|
case PkgbuildToken.ArrayEnds:
|
||||||
break
|
break
|
||||||
case PkgbuildToken.Comment:
|
case comment if comment.startswith(PkgbuildToken.Comment):
|
||||||
self.instream.readline()
|
self._read_comment()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
yield token
|
yield token
|
||||||
@ -267,8 +257,8 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
counter -= 1
|
counter -= 1
|
||||||
if counter == 0:
|
if counter == 0:
|
||||||
break
|
break
|
||||||
case PkgbuildToken.Comment:
|
case comment if comment.startswith(PkgbuildToken.Comment):
|
||||||
self.instream.readline()
|
self._read_comment()
|
||||||
|
|
||||||
if not 0 < start_position < end_position:
|
if not 0 < start_position < end_position:
|
||||||
raise PkgbuildParserError("function body wasn't found")
|
raise PkgbuildParserError("function body wasn't found")
|
||||||
@ -303,8 +293,8 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
yield PkgbuildPatch(key, value)
|
yield PkgbuildPatch(key, value)
|
||||||
return
|
return
|
||||||
|
|
||||||
if token == PkgbuildToken.Comment:
|
if token.startswith(PkgbuildToken.Comment):
|
||||||
self.instream.readline()
|
self._read_comment()
|
||||||
return
|
return
|
||||||
|
|
||||||
match self.get_token():
|
match self.get_token():
|
||||||
@ -332,6 +322,44 @@ class PkgbuildParser(shlex.shlex):
|
|||||||
case other if other is not None:
|
case other if other is not None:
|
||||||
yield from self._parse_token(other)
|
yield from self._parse_token(other)
|
||||||
|
|
||||||
|
def _read_comment(self) -> None:
|
||||||
|
"""
|
||||||
|
read comment from the current position. This method doesn't check comment itself, just read the stream
|
||||||
|
until the comment line ends
|
||||||
|
"""
|
||||||
|
_, last_symbol = self._read_last()
|
||||||
|
if last_symbol != PkgbuildToken.NewLine:
|
||||||
|
self.instream.readline()
|
||||||
|
|
||||||
|
def _read_last(self, initial_index: int | None = None) -> tuple[int, str]:
|
||||||
|
"""
|
||||||
|
wrapper around read to read the last symbol from the input stream. This method is designed to process UTF-8
|
||||||
|
symbols correctly. This method does not reset current stream position
|
||||||
|
|
||||||
|
Args:
|
||||||
|
initial_index(int | None, optional): initial index to start reading from. If none set, the previous position
|
||||||
|
will be used (Default value = None)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
tuple[int, str]: last symbol and its position in the stream
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
PkgbuildParserError: in case if stream reached starting position, but no valid symbols were found
|
||||||
|
"""
|
||||||
|
if initial_index is None:
|
||||||
|
initial_index = self._io.tell() - 1
|
||||||
|
if initial_index < 0:
|
||||||
|
raise PkgbuildParserError("stream is on starting position")
|
||||||
|
self._io.seek(initial_index)
|
||||||
|
|
||||||
|
while (position := self._io.tell()) > 0:
|
||||||
|
try:
|
||||||
|
return position, self._io.read(1)
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
self._io.seek(position - 1)
|
||||||
|
|
||||||
|
raise PkgbuildParserError("reached starting position, no valid symbols found")
|
||||||
|
|
||||||
def parse(self) -> Generator[PkgbuildPatch, None, None]:
|
def parse(self) -> Generator[PkgbuildPatch, None, None]:
|
||||||
"""
|
"""
|
||||||
parse source stream and yield parsed entries
|
parse source stream and yield parsed entries
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -19,9 +19,8 @@
|
|||||||
#
|
#
|
||||||
try:
|
try:
|
||||||
import aiohttp_security
|
import aiohttp_security
|
||||||
_has_aiohttp_security = True
|
|
||||||
except ImportError:
|
except ImportError:
|
||||||
_has_aiohttp_security = False
|
aiohttp_security = None # type: ignore[assignment]
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
@ -40,7 +39,7 @@ async def authorized_userid(*args: Any, **kwargs: Any) -> Any:
|
|||||||
Returns:
|
Returns:
|
||||||
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
||||||
"""
|
"""
|
||||||
if _has_aiohttp_security:
|
if aiohttp_security is not None:
|
||||||
return await aiohttp_security.authorized_userid(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
return await aiohttp_security.authorized_userid(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -56,7 +55,7 @@ async def check_authorized(*args: Any, **kwargs: Any) -> Any:
|
|||||||
Returns:
|
Returns:
|
||||||
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
||||||
"""
|
"""
|
||||||
if _has_aiohttp_security:
|
if aiohttp_security is not None:
|
||||||
return await aiohttp_security.check_authorized(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
return await aiohttp_security.check_authorized(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -72,7 +71,7 @@ async def forget(*args: Any, **kwargs: Any) -> Any:
|
|||||||
Returns:
|
Returns:
|
||||||
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
||||||
"""
|
"""
|
||||||
if _has_aiohttp_security:
|
if aiohttp_security is not None:
|
||||||
return await aiohttp_security.forget(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
return await aiohttp_security.forget(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -88,6 +87,6 @@ async def remember(*args: Any, **kwargs: Any) -> Any:
|
|||||||
Returns:
|
Returns:
|
||||||
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
|
||||||
"""
|
"""
|
||||||
if _has_aiohttp_security:
|
if aiohttp_security is not None:
|
||||||
return await aiohttp_security.remember(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
return await aiohttp_security.remember(*args, **kwargs) # pylint: disable=no-value-for-parameter
|
||||||
return None
|
return None
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -59,10 +59,10 @@ class Mapping(Auth):
|
|||||||
"""
|
"""
|
||||||
if password is None:
|
if password is None:
|
||||||
return False # invalid data supplied
|
return False # invalid data supplied
|
||||||
user = self.get_user(username)
|
user = await self.get_user(username)
|
||||||
return user is not None and user.check_credentials(password, self.salt)
|
return user is not None and user.check_credentials(password, self.salt)
|
||||||
|
|
||||||
def get_user(self, username: str) -> User | None:
|
async def get_user(self, username: str) -> User | None:
|
||||||
"""
|
"""
|
||||||
retrieve user from in-memory mapping
|
retrieve user from in-memory mapping
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ class Mapping(Auth):
|
|||||||
Returns:
|
Returns:
|
||||||
bool: ``True`` in case if user is known and can be authorized and ``False`` otherwise
|
bool: ``True`` in case if user is known and can be authorized and ``False`` otherwise
|
||||||
"""
|
"""
|
||||||
return username is not None and self.get_user(username) is not None
|
return username is not None and await self.get_user(username) is not None
|
||||||
|
|
||||||
async def verify_access(self, username: str, required: UserAccess, context: str | None) -> bool:
|
async def verify_access(self, username: str, required: UserAccess, context: str | None) -> bool:
|
||||||
"""
|
"""
|
||||||
@ -98,5 +98,5 @@ class Mapping(Auth):
|
|||||||
Returns:
|
Returns:
|
||||||
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
|
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
|
||||||
"""
|
"""
|
||||||
user = self.get_user(username)
|
user = await self.get_user(username)
|
||||||
return user is not None and user.verify_access(required)
|
return user is not None and user.verify_access(required)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -120,7 +120,7 @@ class PAM(Mapping):
|
|||||||
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
|
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
|
||||||
"""
|
"""
|
||||||
# this method is basically inverted, first we check overrides in database and then fallback to the PAM logic
|
# this method is basically inverted, first we check overrides in database and then fallback to the PAM logic
|
||||||
if (user := self.get_user(username)) is not None:
|
if (user := await self.get_user(username)) is not None:
|
||||||
return user.verify_access(required)
|
return user.verify_access(required)
|
||||||
# if username is in admin group, then we treat it as full access
|
# if username is in admin group, then we treat it as full access
|
||||||
if username in self.group_members(self.full_access_group):
|
if username in self.group_members(self.full_access_group):
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -136,7 +136,7 @@ class PackageArchive:
|
|||||||
dependencies, roots = self.depends_on_paths()
|
dependencies, roots = self.depends_on_paths()
|
||||||
installed_packages = self.installed_packages()
|
installed_packages = self.installed_packages()
|
||||||
# build list of packages, which contains both the package itself and (possible) debug packages
|
# build list of packages, which contains both the package itself and (possible) debug packages
|
||||||
packages = list(self.package.packages) + [f"{package}-debug" for package in self.package.packages]
|
packages = list(self.package.packages) + [f"{self.package.base}-debug"]
|
||||||
|
|
||||||
# build initial map of file path -> packages containing this path
|
# build initial map of file path -> packages containing this path
|
||||||
# in fact, keys will contain all libraries the package linked to and all directories it contains
|
# in fact, keys will contain all libraries the package linked to and all directories it contains
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -149,8 +149,11 @@ class Task(LazyLogging):
|
|||||||
str | None: current commit sha if available
|
str | None: current commit sha if available
|
||||||
"""
|
"""
|
||||||
last_commit_sha = Sources.load(sources_dir, self.package, patches, self.paths)
|
last_commit_sha = Sources.load(sources_dir, self.package, patches, self.paths)
|
||||||
if local_version is None:
|
if self.package.is_vcs: # if package is VCS, then make sure to update PKGBUILD to the latest version
|
||||||
return last_commit_sha # there is no local package or pkgrel increment is disabled
|
self.build(sources_dir, dry_run=True)
|
||||||
|
|
||||||
|
if local_version is None: # there is no local package or pkgrel increment is disabled
|
||||||
|
return last_commit_sha
|
||||||
|
|
||||||
# load fresh package
|
# load fresh package
|
||||||
loaded_package = Package.from_build(sources_dir, self.architecture, None)
|
loaded_package = Package.from_build(sources_dir, self.architecture, None)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2021-2024 ahriman team.
|
# Copyright (c) 2021-2025 ahriman team.
|
||||||
#
|
#
|
||||||
# This file is part of ahriman
|
# This file is part of ahriman
|
||||||
# (see https://github.com/arcan1s/ahriman).
|
# (see https://github.com/arcan1s/ahriman).
|
||||||
@ -21,7 +21,6 @@ import configparser
|
|||||||
import shlex
|
import shlex
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from collections.abc import Callable
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Self
|
from typing import Any, Self
|
||||||
|
|
||||||
@ -68,7 +67,6 @@ class Configuration(configparser.RawConfigParser):
|
|||||||
_LEGACY_ARCHITECTURE_SPECIFIC_SECTIONS = ["web"]
|
_LEGACY_ARCHITECTURE_SPECIFIC_SECTIONS = ["web"]
|
||||||
ARCHITECTURE_SPECIFIC_SECTIONS = ["alpm", "build", "sign"]
|
ARCHITECTURE_SPECIFIC_SECTIONS = ["alpm", "build", "sign"]
|
||||||
SYSTEM_CONFIGURATION_PATH = Path(sys.prefix) / "share" / "ahriman" / "settings" / "ahriman.ini"
|
SYSTEM_CONFIGURATION_PATH = Path(sys.prefix) / "share" / "ahriman" / "settings" / "ahriman.ini"
|
||||||
converters: dict[str, Callable[[str], Any]] # typing guard
|
|
||||||
|
|
||||||
def __init__(self, allow_no_value: bool = False, allow_multi_key: bool = True) -> None:
|
def __init__(self, allow_no_value: bool = False, allow_multi_key: bool = True) -> None:
|
||||||
"""
|
"""
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user