Aliases for command line arguments
Description
It is possible to define custom aliases which can be then used as dnf commands or options to abbreviate longer command and option sequences.
The aliases can be configured in the toml format and the configuration files are taken from these drop-in directories:
/usr/share/dnf5/aliases.d/
/etc/dnf/dnf5-aliases.d/
$XDG_CONFIG_HOME/dnf5/aliases.d/
Syntax:
Configuration file must begin with the attribute version
with a value of a supported version, for example:
version = '1.0'
Each alias is defined in a separate section, using key = value
pairs, for example:
['in']
type = 'command'
attached_command = 'install'
descr = "Alias for 'install'"
The section name uniquely identifies the alias. It is in a form of a path, i.e. one or more strings separated by dots, which defines the scope of the alias. For example, string “group.list.in” would identify an alias usable only within the scope of the group list subcommand.
There are the following types of aliases:
Type: command
The command
alias defines an alias for a command.
- Keys:
type
- Must have valuecommand
.attached_command
- Path to a command for which this alias is defined.descr
- Description that will be shown in help.group_id
- A group this alias is part of if any.complete
- Whether bash autocompletion should be used for this alias, default is false.attached_named_args
- Options that will be used with the command. The format is an array of inline tables, each of which must contain anid_path
key to specify the path to an option, and may contain also avalue
key to specify the value of the option.
The required keys are type
, and attached_command
.
- Examples:
Alias
grouplist
forgroup list
:['grouplist'] type = 'command' attached_command = 'group.list' descr = "Alias for 'group list'"
Alias
group.ls
forgroup list
:['group.ls'] type = 'command' attached_command = 'group.list' descr = "Alias for 'group list'" complete = true
Alias
list-fedora-all
for--repo=fedora list --showduplicates
:['list-fedora-all'] type = 'command' attached_command = 'list' descr = "Alias for '--repo=fedora list --showduplicates'" complete = true attached_named_args = [ { id_path = 'repo', value = 'fedora' }, { id_path = 'list.showduplicates' } ]
Type: cloned_named_arg
The cloned_named_arg
alias defines another name for a given option.
- Keys:
type
- Must have valuecloned_named_arg
.long_name
- Name of the alias option.short_name
- One-letter shortcut of the name.source
- Path to the option for which this alias is defined.group_id
- A group this alias is part of if any.complete
- Whether bash autocompletion should be used for this alias, default is false.
The required keys are type
, either long_name
or short_name
, and source
.
- Examples:
Alias
--nobest
for--no-best
:['nobest'] type = 'cloned_named_arg' long_name = 'nobest' source = 'no-best'
Alias
repoquery --list
orrepoquery -l
forrepoquery --files
:['repoquery.list'] type = 'cloned_named_arg' long_name = 'list' short_name = 'l' source = 'repoquery.files'
Type: named_arg
The named_arg
defines an alias that can replace multiple options and can define a value for each.
- Keys:
type
- Must have valuenamed_arg
.long_name
- Name of the alias option.short_name
- One-letter shortcut of the name.descr
- Description that will be shown in help.has_value
- Whether the option requires a value. The value is then substituted for${}
strings in the values ofattached_named_args
. Default is false.value_help
- The string shown in help for the value (e.g.CONFIG_FILE_PATH
for--config=CONFIG_FILE_PATH
).const_value
- Default constant value (specified only if the alias does not have a value on the command line). The value is then substituted for${}
strings in the values ofattached_named_args
.group_id
- A group this alias is part of if any.complete
- Whether bash autocompletion should be used for this alias, default is false.attached_named_args
- Options that will be used. The format is an array of inline tables, each of which must contain anid_path
key to specify the path to an option, and may contain also avalue
key to specify the value of the option.
The required keys are type
, and either long_name
or short_name
.
- Examples:
Alias
list --all-available
forlist --showduplicates --available
:['list.all-available'] type = 'named_arg' long_name = 'all-available' attached_named_args = [ { id_path = 'list.showduplicates' }, { id_path = 'list.available' } ]
Alias
download --dest=DESTDIR
fordownload --destdir=DESTDIR
:['download.dest'] type = 'named_arg' long_name = 'dest' has_value = true value_help = 'DESTDIR' attached_named_args = [ { id_path = 'download.destdir' } ]
Alias
--settsflags=TS_FLAGS
for--setopt=tsflags=TS_FLAGS
:['settsflags'] type = 'named_arg' long_name = 'settsflags' descr = 'Set transaction flags' has_value = true value_help = 'TS_FLAGS' attached_named_args = [ { id_path = 'setopt', value = 'tsflags=${}' } ]
Type: group
The group
defines a group for multiple commands or options.
- Required keys:
type
- Must have valuegroup
.header
- The header of the group as will be shown in help.
The required keys are type
and header
.
The aliases are added to the group using the group_id
key in their respective sections.
- Examples:
Group
query-aliases
for subcommandrepo
containing aliasesrepo.ls
andrepo.if
:['repo.query-aliases'] type = 'group' header = 'Query Aliases:' ['repo.ls'] type = 'command' attached_command = 'repo.list' descr = "Alias for 'repo list'" group_id = 'query-aliases' ['repo.if'] type = 'command' attached_command = 'repo.info' descr = "Alias for 'repo info'" group_id = 'query-aliases'