Acme-CPANModules-UnixCommandWrappers

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


0.006   2021-07-12  Released-By: PERLANCAR; Urgency: medium

	- Add entry: App::DiffPDFText.


0.005   2020-11-08  Released-By: PERLANCAR; Urgency: medium

	- Add grep-terms.

	- Remove lcpanm (cpanm is not a Unix command).


0.004   2020-10-27  Released-By: PERLANCAR; Urgency: medium

	- Add diff-xls-text.


0.003   2020-08-26  Released-By: PERLANCAR; Urgency: medium

	- Add App::sdif.

LICENSE  view on Meta::CPAN

    a) cause the modified files to carry prominent notices stating that
    you changed the files and the date of any change; and

    b) cause the whole of any work that you distribute or publish, that
    in whole or in part contains the Program or any part thereof, either
    with or without modifications, to be licensed at no charge to all
    third parties under the terms of this General Public License (except
    that you may choose to grant warranty protection to some or all
    third parties, at your option).

    c) If the modified program normally reads commands interactively when
    run, you must cause it, when started running for such interactive use
    in the simplest and most usual way, to print or display an
    announcement including an appropriate copyright notice and a notice
    that there is no warranty (or else, saying that you provide a
    warranty) and that users may redistribute the program under these
    conditions, and telling the user how to view a copy of this General
    Public License.

    d) You may charge a fee for the physical act of transferring a
    copy, and you may at your option offer warranty protection in

LICENSE  view on Meta::CPAN

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19xx name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License.  Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  program `Gnomovision' (a program to direct compilers to make passes
  at assemblers) written by James Hacker.

META.json  view on Meta::CPAN

{
   "abstract" : "List of various CLIs that wrap existing Unix commands",
   "author" : [
      "perlancar <perlancar@cpan.org>"
   ],
   "dynamic_config" : 0,
   "generated_by" : "Dist::Zilla version 6.031, CPAN::Meta::Converter version 2.150010",
   "license" : [
      "perl_5"
   ],
   "meta-spec" : {
      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",

META.json  view on Meta::CPAN

                        "class" : "Pod::Weaver::Section::Region",
                        "name" : "@Author::PERLANCAR/postlude",
                        "version" : "4.019"
                     },
                     {
                        "class" : "Pod::Weaver::Section::Completion::GetoptLongComplete",
                        "name" : "@Author::PERLANCAR/Completion::GetoptLongComplete",
                        "version" : "0.08"
                     },
                     {
                        "class" : "Pod::Weaver::Section::Completion::GetoptLongSubcommand",
                        "name" : "@Author::PERLANCAR/Completion::GetoptLongSubcommand",
                        "version" : "0.04"
                     },
                     {
                        "class" : "Pod::Weaver::Section::Completion::GetoptLongMore",
                        "name" : "@Author::PERLANCAR/Completion::GetoptLongMore",
                        "version" : "0.001"
                     },
                     {
                        "class" : "Pod::Weaver::Section::Homepage::DefaultCPAN",
                        "name" : "@Author::PERLANCAR/Homepage::DefaultCPAN",

META.yml  view on Meta::CPAN

---
abstract: 'List of various CLIs that wrap existing Unix commands'
author:
  - 'perlancar <perlancar@cpan.org>'
build_requires:
  File::Spec: '0'
  IO::Handle: '0'
  IPC::Open3: '0'
  Test::More: '0'
configure_requires:
  ExtUtils::MakeMaker: '0'
dynamic_config: 0

META.yml  view on Meta::CPAN

              version: '4.019'
            -
              class: Pod::Weaver::Section::Region
              name: '@Author::PERLANCAR/postlude'
              version: '4.019'
            -
              class: Pod::Weaver::Section::Completion::GetoptLongComplete
              name: '@Author::PERLANCAR/Completion::GetoptLongComplete'
              version: '0.08'
            -
              class: Pod::Weaver::Section::Completion::GetoptLongSubcommand
              name: '@Author::PERLANCAR/Completion::GetoptLongSubcommand'
              version: '0.04'
            -
              class: Pod::Weaver::Section::Completion::GetoptLongMore
              name: '@Author::PERLANCAR/Completion::GetoptLongMore'
              version: '0.001'
            -
              class: Pod::Weaver::Section::Homepage::DefaultCPAN
              name: '@Author::PERLANCAR/Homepage::DefaultCPAN'
              version: '0.05'
            -

Makefile.PL  view on Meta::CPAN

# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.031.
use strict;
use warnings;



use ExtUtils::MakeMaker;

my %WriteMakefileArgs = (
  "ABSTRACT" => "List of various CLIs that wrap existing Unix commands",
  "AUTHOR" => "perlancar <perlancar\@cpan.org>",
  "CONFIGURE_REQUIRES" => {
    "ExtUtils::MakeMaker" => 0
  },
  "DISTNAME" => "Acme-CPANModules-UnixCommandWrappers",
  "LICENSE" => "perl",
  "NAME" => "Acme::CPANModules::UnixCommandWrappers",
  "PREREQ_PM" => {
    "strict" => 0
  },

README  view on Meta::CPAN

NAME
    Acme::CPANModules::UnixCommandWrappers - List of various CLIs that wrap
    existing Unix commands

VERSION
    This document describes version 0.010 of
    Acme::CPANModules::UnixCommandWrappers (from Perl distribution
    Acme-CPANModules-UnixCommandWrappers), released on 2024-09-19.

DESCRIPTION
    These CLI's usually are meant to be called as the Unix commands they
    wrap, e.g.:

     alias ssh=sshwrap-hostcolor

    But they perform additional stuffs.

    If you know of others, please drop me a message.

    Keywords: CLI, wrapper, Unix utilities

README  view on Meta::CPAN


    App::DiffXlsText
        Diffs two office spreadsheets by first converting them to
        directories of CSV files.

        Script: diff-xls-text

    App::sdif
        Provides sdif (diff side-by-side with nice color theme), cdif
        (highlight words with nice color scheme), and watchdiff (watch
        command and diff output).

        Scripts: sdif, cdif, watchdiff

    App::findsort
        Wraps find to add sorting.

        Script: findsort

    App::gitwrap
        Wraps git to do additional stuff, e.g. set user+email automatically.

README  view on Meta::CPAN


    or Acme::CM::Get:

        % perl -MAcme::CM::Get=UnixCommandWrappers -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n

    or directly:

        % perl -MAcme::CPANModules::UnixCommandWrappers -E'say $_->{module} for @{ $Acme::CPANModules::UnixCommandWrappers::LIST->{entries} }' | cpanm -n

    This Acme::CPANModules module also helps lcpan produce a more meaningful
    result for "lcpan related-mods" command when it comes to finding related
    modules for the modules listed in this Acme::CPANModules module. See
    App::lcpan::Cmd::related_mods for more details on how "related modules"
    are found.

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/Acme-CPANModules-UnixCommandWrappers>.

SOURCE
    Source repository is at

lib/Acme/CPANModules/UnixCommandWrappers.pm  view on Meta::CPAN

package Acme::CPANModules::UnixCommandWrappers;

use strict;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2024-09-19'; # DATE
our $DIST = 'Acme-CPANModules-UnixCommandWrappers'; # DIST
our $VERSION = '0.010'; # VERSION

our $LIST = {
    summary => "List of various CLIs that wrap existing Unix commands",
    description => <<'MARKDOWN',

These CLI's usually are meant to be called as the Unix commands they wrap, e.g.:

    alias ssh=sshwrap-hostcolor

But they perform additional stuffs.

If you know of others, please drop me a message.

Keywords: CLI, wrapper, Unix utilities

MARKDOWN
    entries => [
        # convert (ImageMagick)
        {
            summary => 'Simple wrappers for ImageMagick\'s convert to process multiple filenames and automatically set output filenames',
            module => 'App::ImageMagickUtils',
            script => ['convert-image-to', 'convert-image-to-pdf'],
            'x.command' => 'convert',
        },

        # cp, mv (ImageMagick)
        {
            summary => 'Wrappers for cp & mv to adjust relative symlinks',
            module => 'App::CpMvUtils',
            script => ['cp-and-adjust-symlinks', 'mv-and-adjust-symlinks'],
            'x.command' => ['cp', 'mv'],
        },

        # diff
        {
            summary => 'Wraps (or filters output of) diff to add colors and highlight words',
            module => 'App::diffwc',
            script => ['diffwc', 'diffwc-filter-u'],
            'x.command' => 'diff',
        },
        {
            summary => 'Diffs two office word-processor documents by first converting them to plaintext',
            module => 'App::DiffDocText',
            script => ['diff-doc-text'],
            'x.command' => 'diff',
        },
        {
            summary => 'Diffs two PDF files by first converting to plaintext',
            module => 'App::DiffPDFText',
            script => ['diff-pdf-text'],
            'x.command' => 'diff',
        },
        {
            summary => 'Diffs two office spreadsheets by first converting them to directories of CSV files',
            module => 'App::DiffXlsText',
            script => ['diff-xls-text'],
            'x.command' => 'diff',
        },
        {
            summary => 'Provides sdif (diff side-by-side with nice color theme), cdif (highlight words with nice color scheme), and watchdiff (watch command and diff output)',
            module => 'App::sdif',
            script => ['sdif', 'cdif', 'watchdiff'],
            'x.command' => ['diff', 'watch'],
        },

        # find
        {
            summary => 'Wraps find to add sorting',
            module => 'App::findsort',
            script => 'findsort',
            'x.command' => 'find',
        },

        # git
        {
            summary => 'Wraps git to do additional stuff, e.g. set user+email automatically',
            module => 'App::gitwrap',
            script => 'gitwrap',
            'x.command' => 'git',
        },

        # grep
        {
            summary => 'Print lines that match terms (each term need not be in particular order, support negative search)',
            module => 'App::GrepUtils',
            script => ['grep-terms'],
            'x.command' => ['grep'],
        },

        # man
        {
            summary => 'Wraps man to search for (and tab-complete) Perl module documentation',
            module => 'App::manwrap::pm',
            script => 'manwrap-pm',
            'x.command' => 'man',
        },

        # rsync
        {
            summary => 'Wraps rsync to add color to output, particularly highlighting deletion',
            module => 'App::rsynccolor',
            script => 'rsynccolor',
            'x.command' => 'rsync',
        },
        {
            summary => 'Wraps rsync to check that source is newer than target',
            module => 'App::rsync::new2old',
            script => 'rsync-new2old',
            'x.command' => 'rsync',
        },

        # ssh
        {
            summary => 'Wraps ssh to remember the background terminal color of each user+host you went to',
            module => 'App::sshwrap::hostcolor',
            script => 'sshwrap-hostcolor',
            'x.command' => 'ssh',
        },

    ],
};

1;
# ABSTRACT: List of various CLIs that wrap existing Unix commands

__END__

=pod

=encoding UTF-8

=head1 NAME

Acme::CPANModules::UnixCommandWrappers - List of various CLIs that wrap existing Unix commands

=head1 VERSION

This document describes version 0.010 of Acme::CPANModules::UnixCommandWrappers (from Perl distribution Acme-CPANModules-UnixCommandWrappers), released on 2024-09-19.

=head1 DESCRIPTION

These CLI's usually are meant to be called as the Unix commands they wrap, e.g.:

 alias ssh=sshwrap-hostcolor

But they perform additional stuffs.

If you know of others, please drop me a message.

Keywords: CLI, wrapper, Unix utilities

=head1 ACME::CPANMODULES ENTRIES

lib/Acme/CPANModules/UnixCommandWrappers.pm  view on Meta::CPAN

Script: L<diff-pdf-text>

=item L<App::DiffXlsText>

Diffs two office spreadsheets by first converting them to directories of CSV files.

Script: L<diff-xls-text>

=item L<App::sdif>

Provides sdif (diff side-by-side with nice color theme), cdif (highlight words with nice color scheme), and watchdiff (watch command and diff output).

Scripts: L<sdif>, L<cdif>, L<watchdiff>

=item L<App::findsort>

Wraps find to add sorting.

Script: L<findsort>

=item L<App::gitwrap>

lib/Acme/CPANModules/UnixCommandWrappers.pm  view on Meta::CPAN


or L<Acme::CM::Get>:

    % perl -MAcme::CM::Get=UnixCommandWrappers -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n

or directly:

    % perl -MAcme::CPANModules::UnixCommandWrappers -E'say $_->{module} for @{ $Acme::CPANModules::UnixCommandWrappers::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

Please visit the project's homepage at L<https://metacpan.org/release/Acme-CPANModules-UnixCommandWrappers>.

=head1 SOURCE

t/00-compile.t  view on Meta::CPAN


use File::Spec;
use IPC::Open3;
use IO::Handle;

open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";

my @warnings;
for my $lib (@module_files)
{
    # see L<perlfaq8/How can I capture STDERR from an external command?>
    my $stderr = IO::Handle->new;

    diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
            $^X, @switches, '-e', "require q[$lib]"))
        if $ENV{PERL_COMPILE_TEST_DEBUG};

    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
    my @_warnings = <$stderr>;
    waitpid($pid, 0);



( run in 0.990 second using v1.01-cache-2.11-cpan-f56aa216473 )