AHRIMAN(1)

NAME
ahriman

SYNOPSIS
ahriman [-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--no-report] [-q] [--unsafe] [-v] {aur-search,search,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,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-update,update,user-add,user-list,user-remove,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

--no-report
    force disable reporting to web service

-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 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 set

ahriman patch-list
    list patch sets

ahriman patch-remove
    remove 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-update
    update packages

ahriman user-add
    create or update user

ahriman user-list
    user known users and their access

ahriman user-remove
    remove user

ahriman web
    web server

COMMAND 'ahriman aur-search'
usage: ahriman aur-search [-h] [-e] [-i]
                        [--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, result will match all terms

OPTIONS 'ahriman aur-search'

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

-i, --info
    show additional package information

--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 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]
                        [-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.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

-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}, --source {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.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 {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.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 {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}, --status {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.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

COMMAND 'ahriman package-status-update'
usage: ahriman package-status-update [-h]
                        [-s {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.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 {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}, --status {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}
    new status

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

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

OPTIONS 'ahriman patch-add'

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

COMMAND 'ahriman patch-list'
usage: ahriman patch-list [-h] [-e] [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

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

package
    package base

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

path
    path of the output archive

COMMAND 'ahriman repo-check'
usage: ahriman repo-check [-h] [-e] [--no-vcs] [package ...] check for packages updates. Same as 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

--no-vcs
    do not check VCS packages

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

OPTIONS 'ahriman repo-clean'

--cache
    clear directory with package caches

--chroot
    clear build chroot

--manual
    clear manually added packages queue

--packages
    clear directory with built packages

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 package

--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] [-i] 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

-i, --info
    show additional package information

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

target
    target to generate report

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] [--no-multilib] --packager PACKAGER --repository
                        REPOSITORY [--sign-key SIGN_KEY]
                        [--sign-target {SignSettings.Disabled,SignSettings.Packages,SignSettings.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

--no-multilib
    do not add multilib repository

--packager PACKAGER
    packager name and email

--repository REPOSITORY
    repository name

--sign-key SIGN_KEY
    sign key id

--sign-target {SignSettings.Disabled,SignSettings.Packages,SignSettings.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 {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}] update repository status on the status page

OPTIONS 'ahriman repo-status-update'

-s {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}, --status {BuildStatusEnum.Unknown,BuildStatusEnum.Pending,BuildStatusEnum.Building,BuildStatusEnum.Failed,BuildStatusEnum.Success}
    new status

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

target
    target to sync

COMMAND 'ahriman repo-update'
usage: ahriman repo-update [-h] [--dry-run] [-e] [--no-aur] [--no-local] [--no-manual] [--no-vcs] [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

--no-aur
    do not check for AUR updates. Implies --no-vcs

--no-local
    do not check local packages for updates

--no-manual
    do not include manual updates

--no-vcs
    do not check VCS packages

COMMAND 'ahriman user-add'
usage: ahriman user-add [-h] [--as-service] [-p PASSWORD] [-r {UserAccess.Safe,UserAccess.Read,UserAccess.Write}] [-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 {UserAccess.Safe,UserAccess.Read,UserAccess.Write}, --role {UserAccess.Safe,UserAccess.Read,UserAccess.Write}
    user access level

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

COMMAND 'ahriman user-list'
usage: ahriman user-list [-h] [-e] [-r {UserAccess.Safe,UserAccess.Read,UserAccess.Write}] [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 {UserAccess.Safe,UserAccess.Read,UserAccess.Write}, --role {UserAccess.Safe,UserAccess.Read,UserAccess.Write}
    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 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