NAME
App::Cme::Command::modify - Modify the configuration of an application
VERSION
version 1.044
SYNOPSIS
# modify configuration with command line
cme modify dpkg source 'format="(3.0) quilt"'
DESCRIPTION
Modify a configuration file with the values passed on the command line. These command must follow the syntax defined in Config::Model::Loader (which is similar to the output of cme dump command)
Example:
cme modify dpkg 'control source format="(3.0) quilt"'
cme modify ssh 'Host:"*.debian.org" User=dod'
Finding the right instructions to perform a modification may be difficult when starting from scratch.
To get started, you can run cme dump --format cml command to get the content of your configuration in the syntax accepted by cme modify:
$ cme dump ssh -format cml
Host:"*" -
Host:"alioth.debian.org"
User=dod -
Host:"*.debian.org"
IdentityFile:="~/.ssh/id_debian"
User=dod -
Then you can use this output to create instruction for a modification:
$ cme modify ssh 'Host:"*" User=dod'
Changes applied to ssh configuration:
- Host:"*" User has new value: 'dod'
Common options
options
- -save
-
Force a save even if no change was done by user (although some minor change like migrating deprecated values can be done by cme). Useful to minimize changes and reformat the configuration file. Running
cme modify xxx -saveis equivalent to runningcme migrate xxx. - -verbose
-
Show effect of the modify instructions.
Examples
Set identity file for a domain
$ cme modify ssh 'Host:"*.work.com" IdentityFile:="~/.ssh/id_work"'
This example requires Config::Model::OpenSsh.
Update Dpkg file
To set Architecture parameter for all binary packages:
$ cme modify dpkg-control 'binary:~".*" Architecture=any'
This achieves the same result but can be slower since all package files are read:
$ cme modify dpkg 'control binary:~".*" Architecture=any'
This Debian example requires libconfig-model-dpkg-perl
Re-use your one-liners
These modification instructions can be re-used once they are stored in a run script (See App::Cme::Command::run for details).
The following one-liner:
$ cme modify dpkg 'control binary:~".*" Architecture=any'
can be stored in ~/.cme/scripts/set-arch-as-any:
app: dpkg-control
load: binary:~".*" Architecture=any
and then run with:
$ cme run set-arch-as-any
SEE ALSO
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2014-2022 by Dominique Dumont <ddumont@cpan.org>.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999