AHRIMAN(1)

NAME
ahriman

SYNOPSIS
ahriman [-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--report | --no-report] [-q] [--unsafe] [-V] {aur-search,search,daemon,help,help-commands-unsafe,key-import,package-add,add,package-update,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-clean,clean,repo-config,config,repo-rebuild,rebuild,repo-remove-unknown,remove-unknown,repo-report,report,repo-restore,repo-setup,init,repo-init,setup,repo-sign,sign,repo-status-update,repo-sync,sync,repo-triggers,repo-update,update,shell,user-add,user-list,user-remove,version,web} ...

DESCRIPTION
ArcH linux ReposItory MANager

OPTIONS

-a ARCHITECTURE, --architecture ARCHITECTURE
    target architectures (can be used multiple times)

-c CONFIGURATION, --configuration CONFIGURATION
    configuration path

--force
    force run, remove file lock

-l LOCK, --lock LOCK
    lock file

--report, --no-report
    force enable or disable reporting to web service (default: True)

-q, --quiet
    force disable any logging

--unsafe
    allow to run ahriman as non-ahriman user. Some actions might be unavailable

-V, --version
    show program's version number and exit

COMMAND

ahriman aur-search
    search for package

ahriman daemon
    run application as daemon

ahriman help
    show help message

ahriman help-commands-unsafe
    list unsafe commands

ahriman key-import
    import PGP key

ahriman package-add
    add package

ahriman package-remove
    remove package

ahriman package-status
    get package status

ahriman package-status-remove
    remove package status

ahriman package-status-update
    update package status

ahriman patch-add
    add patch for PKGBUILD function

ahriman patch-list
    list patch sets

ahriman patch-remove
    remove patch set

ahriman patch-set-add
    add patch set

ahriman repo-backup
    backup repository data

ahriman repo-check
    check for updates

ahriman repo-clean
    clean local caches

ahriman repo-config
    dump configuration

ahriman repo-rebuild
    rebuild repository

ahriman repo-remove-unknown
    remove unknown packages

ahriman repo-report
    generate report

ahriman repo-restore
    restore repository data

ahriman repo-setup
    initial service configuration

ahriman repo-sign
    sign packages

ahriman repo-status-update
    update repository status

ahriman repo-sync
    sync repository

ahriman repo-triggers
    run triggers

ahriman repo-update
    update packages

ahriman shell
    envoke python shell

ahriman user-add
    create or update user

ahriman user-list
    user known users and their access

ahriman user-remove
    remove user

ahriman version
    application version

ahriman web
    web server

COMMAND 'ahriman aur-search'
usage: ahriman aur-search [-h] [-e] [--info | --no-info]
                        [--sort-by {description,first_submitted,id,last_modified,maintainer,name,num_votes,out_of_date,package_base,package_base_id,popularity,repository,url,url_path,version}]
                        search [search ...] search for package in AUR using API

search
    search terms, can be specified multiple times, the result will match all terms

OPTIONS 'ahriman aur-search'

-e, --exit-code
    return non-zero exit status if result is empty

--info, --no-info
    show additional package information (default: False)

--sort-by {description,first_submitted,id,last_modified,maintainer,name,num_votes,out_of_date,package_base,package_base_id,popularity,repository,url,url_path,version}
    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

COMMAND 'ahriman daemon'
usage: ahriman daemon [-h] [-i INTERVAL] [--aur | --no-aur] [--local | --no-local] [--manual | --no-manual]
                      [--vcs | --no-vcs] [-y] start process which periodically will run update process

OPTIONS 'ahriman daemon'

-i INTERVAL, --interval INTERVAL
    interval between runs in seconds

--aur, --no-aur
    enable or disable checking for AUR updates. Implies --no-vcs (default: True)

--local, --no-local
    enable or disable checking of local packages for updates (default: True)

--manual, --no-manual
    include or exclude manual updates (default: True)

--vcs, --no-vcs
    enable or disable checking of VCS packages (default: True)

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman help'
usage: ahriman help [-h] [command] show help message for application or command and exit

command
    show help message for specific command

COMMAND 'ahriman help-commands-unsafe'
usage: ahriman help-commands-unsafe [-h] [--command COMMAND] list unsafe commands as defined in default args

OPTIONS 'ahriman help-commands-unsafe'

--command COMMAND
    instead of showing commands, just test command line for unsafe subcommand and return 0 in case if command is safe and 1 otherwise

COMMAND 'ahriman key-import'
usage: ahriman key-import [-h] [--key-server KEY_SERVER] key import PGP key from public sources to the repository user

key PGP key to import from public server

OPTIONS 'ahriman key-import'

--key-server KEY_SERVER
    key server for key import

COMMAND 'ahriman package-add'
usage: ahriman package-add [-h] [-e] [-n] [-y] [-s {auto,archive,aur,directory,local,remote,repository}]
                        [--without-dependencies]
                        package [package ...] add existing or new package to the build queue

package
    package source (base name, path to local files, remote URL)

OPTIONS 'ahriman package-add'

-e, --exit-code
    return non-zero exit status if result is empty

-n, --now
    run update function after

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

-s {auto,archive,aur,directory,local,remote,repository}, --source {auto,archive,aur,directory,local,remote,repository}
    explicitly specify the package source for this command

--without-dependencies
    do not add dependencies

COMMAND 'ahriman package-remove'
usage: ahriman package-remove [-h] package [package ...] remove package from the repository

package
    package name or base

COMMAND 'ahriman package-status'
usage: ahriman package-status [-h] [--ahriman] [-e] [-i] [-s {unknown,pending,building,failed,success}] [package ...] request status of the package

package
    filter status by package base

OPTIONS 'ahriman package-status'

--ahriman
    get service status itself

-e, --exit-code
    return non-zero exit status if result is empty

-i, --info
    show additional package information

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    filter packages by status

COMMAND 'ahriman package-status-remove'
usage: ahriman package-status-remove [-h] package [package ...] remove the package from the status page

package
    remove specified packages from status page

COMMAND 'ahriman package-status-update'
usage: ahriman package-status-update [-h] [-s {unknown,pending,building,failed,success}] [package ...] update package status on the status page

package
    set status for specified packages. If no packages supplied, service status will be updated

OPTIONS 'ahriman package-status-update'

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    new package build status

COMMAND 'ahriman patch-add'
usage: ahriman patch-add [-h] package variable [patch] create or update patched PKGBUILD function or variable

package
    package base

variable
    PKGBUILD variable or function name. If variable is a function, it must end with ()

patch
    path to file which contains function or variable value. If not set, the value will be read from stdin

COMMAND 'ahriman patch-list'
usage: ahriman patch-list [-h] [-e] [-v VARIABLE] [package] list available patches for the package

package
    package base

OPTIONS 'ahriman patch-list'

-e, --exit-code
    return non-zero exit status if result is empty

-v VARIABLE, --variable VARIABLE
    if set, show only patches for specified PKGBUILD variables

COMMAND 'ahriman patch-remove'
usage: ahriman patch-remove [-h] [-v VARIABLE] package remove patches for the package

package
    package base

OPTIONS 'ahriman patch-remove'

-v VARIABLE, --variable VARIABLE
    should be used for single-function patches in case if you wold like to remove only specified PKGBUILD variables. In case if not set, it will remove all patches related to the package

COMMAND 'ahriman patch-set-add'
usage: ahriman patch-set-add [-h] [-t TRACK] package create or update source patches

package
    path to directory with changed files for patch addition/update

OPTIONS 'ahriman patch-set-add'

-t TRACK, --track TRACK
    files which has to be tracked

COMMAND 'ahriman repo-backup'
usage: ahriman repo-backup [-h] path backup repository settings and database

path
    path of the output archive

COMMAND 'ahriman repo-check'
usage: ahriman repo-check [-h] [-e] [--vcs | --no-vcs] [-y] [package ...] check for packages updates. Same as repo-update --dry-run --no-manual

package
    filter check by package base

OPTIONS 'ahriman repo-check'

-e, --exit-code
    return non-zero exit status if result is empty

--vcs, --no-vcs
    enable or disable checking of VCS packages (default: True)

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman repo-clean'
usage: ahriman repo-clean [-h] [--cache | --no-cache] [--chroot | --no-chroot] [--manual | --no-manual]
                        [--packages | --no-packages] [--pacman | --no-pacman] remove local caches

OPTIONS 'ahriman repo-clean'

--cache, --no-cache
    clear directory with package caches (default: False)

--chroot, --no-chroot
    clear build chroot (default: False)

--manual, --no-manual
    clear manually added packages queue (default: False)

--packages, --no-packages
    clear directory with built packages (default: False)

--pacman, --no-pacman
    clear directory with pacman local database cache (default: False)

COMMAND 'ahriman repo-config'
usage: ahriman repo-config [-h] dump configuration for the specified architecture

COMMAND 'ahriman repo-rebuild'
usage: ahriman repo-rebuild [-h] [--depends-on DEPENDS_ON] [--dry-run] [--from-database] [-e] force rebuild whole repository

OPTIONS 'ahriman repo-rebuild'

--depends-on DEPENDS_ON
    only rebuild packages that depend on specified packages

--dry-run
    just perform check for packages without rebuild process itself

--from-database
    read packages from database instead of filesystem. This feature in particular is required in case if you would like to restore repository from another repository instance. Note, however, that in order to restore packages you need to have original ahriman instance run with web service and have run repo-update at least once.

-e, --exit-code
    return non-zero exit status if result is empty

COMMAND 'ahriman repo-remove-unknown'
usage: ahriman repo-remove-unknown [-h] [--dry-run] remove packages which are missing in AUR and do not have local PKGBUILDs

OPTIONS 'ahriman repo-remove-unknown'

--dry-run
    just perform check for packages without removal

COMMAND 'ahriman repo-report'
usage: ahriman repo-report [-h] generate repository report according to current settings

COMMAND 'ahriman repo-restore'
usage: ahriman repo-restore [-h] [-o OUTPUT] path restore settings and database

path
    path of the input archive

OPTIONS 'ahriman repo-restore'

-o OUTPUT, --output OUTPUT
    root path of the extracted files

COMMAND 'ahriman repo-setup'
usage: ahriman repo-setup [-h] [--build-as-user BUILD_AS_USER] [--build-command BUILD_COMMAND]
                        [--from-configuration FROM_CONFIGURATION] [--multilib | --no-multilib] --packager PACKAGER
                        --repository REPOSITORY [--sign-key SIGN_KEY] [--sign-target {disabled,pacakges,repository}]
                        [--web-port WEB_PORT] create initial service configuration, requires root

OPTIONS 'ahriman repo-setup'

--build-as-user BUILD_AS_USER
    force makepkg user to the specific one

--build-command BUILD_COMMAND
    build command prefix

--from-configuration FROM_CONFIGURATION
    path to default devtools pacman configuration

--multilib, --no-multilib
    add or do not multilib repository (default: True)

--packager PACKAGER
    packager name and email

--repository REPOSITORY
    repository name

--sign-key SIGN_KEY
    sign key id

--sign-target {disabled,pacakges,repository}
    sign options

--web-port WEB_PORT
    port of the web service

COMMAND 'ahriman repo-sign'
usage: ahriman repo-sign [-h] [package ...] (re-)sign packages and repository database according to current settings

package
    sign only specified packages

COMMAND 'ahriman repo-status-update'
usage: ahriman repo-status-update [-h] [-s {unknown,pending,building,failed,success}] update repository status on the status page

OPTIONS 'ahriman repo-status-update'

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    new status

COMMAND 'ahriman repo-sync'
usage: ahriman repo-sync [-h] sync repository files to remote server according to current settings

COMMAND 'ahriman repo-triggers'
usage: ahriman repo-triggers [-h] [trigger ...] run triggers on empty build result as configured by settings

trigger
    instead of running all triggers as set by configuration, just process specified ones oin order of metion

COMMAND 'ahriman repo-update'
usage: ahriman repo-update [-h] [--dry-run] [-e] [--aur | --no-aur] [--local | --no-local] [--manual | --no-manual]
                        [--vcs | --no-vcs] [-y]
                        [package ...] check for packages updates and run build process if requested

package
    filter check by package base

OPTIONS 'ahriman repo-update'

--dry-run
    just perform check for updates, same as check command

-e, --exit-code
    return non-zero exit status if result is empty

--aur, --no-aur
    enable or disable checking for AUR updates. Implies --no-vcs (default: True)

--local, --no-local
    enable or disable checking of local packages for updates (default: True)

--manual, --no-manual
    include or exclude manual updates (default: True)

--vcs, --no-vcs
    enable or disable checking of VCS packages (default: True)

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman shell'
usage: ahriman shell [-h] [code] drop into python shell while having created application

code
    instead of dropping into shell, just execute the specified code

COMMAND 'ahriman user-add'
usage: ahriman user-add [-h] [--as-service] [-p PASSWORD] [-r {unauthorized,read,reporter,full}] [-s] username update user for web services with the given password and role. In case if password was not entered it will be asked interactively

username
    username for web service

OPTIONS 'ahriman user-add'

--as-service
    add user as service user

-p PASSWORD, --password PASSWORD
    user password. Blank password will be treated as empty password, which is in particular must be used for OAuth2 authorization type.

-r {unauthorized,read,reporter,full}, --role {unauthorized,read,reporter,full}
    user access level

-s, --secure
    set file permissions to user-only

COMMAND 'ahriman user-list'
usage: ahriman user-list [-h] [-e] [-r {unauthorized,read,reporter,full}] [username] list users from the user mapping and their roles

username
    filter users by username

OPTIONS 'ahriman user-list'

-e, --exit-code
    return non-zero exit status if result is empty

-r {unauthorized,read,reporter,full}, --role {unauthorized,read,reporter,full}
    filter users by role

COMMAND 'ahriman user-remove'
usage: ahriman user-remove [-h] [-s] username remove user from the user mapping and update the configuration

username
    username for web service

OPTIONS 'ahriman user-remove'

-s, --secure
    set file permissions to user-only

COMMAND 'ahriman version'
usage: ahriman version [-h] print application and its dependencies versions

COMMAND 'ahriman web'
usage: ahriman web [-h] start web server

COMMENTS
Argument list can also be read from file by using @ prefix.

AUTHORS
ahriman team

DISTRIBUTION
The latest version of ahriman may be downloaded from https://github.com/arcan1s/ahriman