App-Cme
view release on metacpan or search on metacpan
lib/App/Cme/Command/run.pm view on Meta::CPAN
parameters as you can easily achieve the same result with Perl code.
=head1 Options
=head2 list
List available scripts and exits.
=head2 arg
Arguments for the cme scripts which are used to substitute variables.
=head2 doc
Show the script documentation. (Note that C<--help> options show the
documentation of C<cme run> command)
=head2 cat
Pop the hood and show the content of the script.
=head2 commit
Like the commit instruction in script. Specify that the change must be
committed with the passed commit message.
=head2 no-commit
Don't commit to git (even if the above option is set)
=head2 foreach
Apply the script in specific directories. This option is available
only when dealing with application (See the list returned by C<cme list>).
For instance, if your directory contains several Debian packages and
you want to apply the same modification to all packages, you can run
something like:
cme run add-me-to-uploaders --foreach "raku-log raku-zef"
or use C<STDIN> to send the package directories:
ls "raku-*" | cme run add-me-to-uploaders --foreach -
=head2 verbose
Show effect of the modify instructions.
=head1 Common options
See L<cme/"Global Options">.
=head1 Examples
=head2 update copyright years in C<debian/copyright>
$ cme run update-copyright -cat
app: dpkg-copyright
load: Files:~ Copyright=~"s/2016,?\s+$name/2017, $name/g"
commit: updated copyright year of $name
$ cme run update-copyright -arg "name=Dominique Dumont"
cme: using Dpkg::Copyright model
Changes applied to dpkg-copyright configuration:
- Files:"*" Copyright: '2005-2016, Dominique Dumont <dod@debian.org>' -> '2005-2017, Dominique Dumont <dod@debian.org>'
- Files:"lib/Dpkg/Copyright/Scanner.pm" Copyright:
@@ -1,2 +1,2 @@
-2014-2016, Dominique Dumont <dod@debian.org>
+2014-2017, Dominique Dumont <dod@debian.org>
2005-2012, Jonas Smedegaard <dr@jones.dk>
[master ac2e6410] updated copyright year of Dominique Dumont
1 file changed, 2 insertions(+), 2 deletions(-)
=head2 update VcsGit in debian/control
$ cme run set-vcs-git -cat
doc: update control Vcs-Browser and Vcs-git from git remote value
doc: parameters: remote (default is origin)
doc:
doc: example:
doc: cme run set-vcs-git
doc: cme run set-vcs-git -arg remote=debian
app: dpkg-control
default: remote: origin
var: chomp ( $var{url} = `git remote get-url $args{remote}` ) ;
var: $var{url} =~ s!^git@!https://!;
var: $var{url} =~ s!(https?://[\w.]+):!$1/!;
var: $var{browser} = $var{url};
var: $var{browser} =~ s/.git$//;
load: ! source Vcs-Browser="$browser" Vcs-Git="$url"
commit: control: update Vcs-Browser and Vcs-Git
This script can also be written using multi line instructions:
$ cme run set-vcs-git -cat
--- doc
update control Vcs-Browser and Vcs-git from git remote value
parameters: remote (default is origin)
example:
cme run set-vcs-git
cme run set-vcs-git -arg remote=debian
---
app: dpkg-control
default: remote: origin
--- var
chomp ( $var{url} = `git remote get-url $args{remote}` ) ;
$var{url} =~ s!^git@!https://!;
$var{url} =~ s!(https?://[\w.]+):!$1/!;
$var{browser} = $var{url};
$var{browser} =~ s/.git$//;
---
load: ! source Vcs-Browser="$browser" Vcs-Git="$url"
commit: control: update Vcs-Browser and Vcs-Git
=head2 personal scripts
You may create your own scripts in C<~/.cme/scripts>. Here's an example:
$ cat ~/.cme/scripts/set-any-arch
app: dpkg-control
load: binary:~".*" Architecture=any
=head1 SEE ALSO
( run in 0.460 second using v1.01-cache-2.11-cpan-7f9471e7e0a )