App::Cme::Command::modify(3pm)

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
See "Global Options" in cme.

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 -save" is equivalent to running "cme 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
cme

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