File Coverage

blib/lib/Acme/CPANModules/UnixCommandWrappers.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             package Acme::CPANModules::UnixCommandWrappers;
2              
3 1     1   223611 use strict;
  1         2  
  1         271  
4              
5             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
6             our $DATE = '2024-09-19'; # DATE
7             our $DIST = 'Acme-CPANModules-UnixCommandWrappers'; # DIST
8             our $VERSION = '0.010'; # VERSION
9              
10             our $LIST = {
11             summary => "List of various CLIs that wrap existing Unix commands",
12             description => <<'MARKDOWN',
13              
14             These CLI's usually are meant to be called as the Unix commands they wrap, e.g.:
15              
16             alias ssh=sshwrap-hostcolor
17              
18             But they perform additional stuffs.
19              
20             If you know of others, please drop me a message.
21              
22             Keywords: CLI, wrapper, Unix utilities
23              
24             MARKDOWN
25             entries => [
26             # convert (ImageMagick)
27             {
28             summary => 'Simple wrappers for ImageMagick\'s convert to process multiple filenames and automatically set output filenames',
29             module => 'App::ImageMagickUtils',
30             script => ['convert-image-to', 'convert-image-to-pdf'],
31             'x.command' => 'convert',
32             },
33              
34             # cp, mv (ImageMagick)
35             {
36             summary => 'Wrappers for cp & mv to adjust relative symlinks',
37             module => 'App::CpMvUtils',
38             script => ['cp-and-adjust-symlinks', 'mv-and-adjust-symlinks'],
39             'x.command' => ['cp', 'mv'],
40             },
41              
42             # diff
43             {
44             summary => 'Wraps (or filters output of) diff to add colors and highlight words',
45             module => 'App::diffwc',
46             script => ['diffwc', 'diffwc-filter-u'],
47             'x.command' => 'diff',
48             },
49             {
50             summary => 'Diffs two office word-processor documents by first converting them to plaintext',
51             module => 'App::DiffDocText',
52             script => ['diff-doc-text'],
53             'x.command' => 'diff',
54             },
55             {
56             summary => 'Diffs two PDF files by first converting to plaintext',
57             module => 'App::DiffPDFText',
58             script => ['diff-pdf-text'],
59             'x.command' => 'diff',
60             },
61             {
62             summary => 'Diffs two office spreadsheets by first converting them to directories of CSV files',
63             module => 'App::DiffXlsText',
64             script => ['diff-xls-text'],
65             'x.command' => 'diff',
66             },
67             {
68             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)',
69             module => 'App::sdif',
70             script => ['sdif', 'cdif', 'watchdiff'],
71             'x.command' => ['diff', 'watch'],
72             },
73              
74             # find
75             {
76             summary => 'Wraps find to add sorting',
77             module => 'App::findsort',
78             script => 'findsort',
79             'x.command' => 'find',
80             },
81              
82             # git
83             {
84             summary => 'Wraps git to do additional stuff, e.g. set user+email automatically',
85             module => 'App::gitwrap',
86             script => 'gitwrap',
87             'x.command' => 'git',
88             },
89              
90             # grep
91             {
92             summary => 'Print lines that match terms (each term need not be in particular order, support negative search)',
93             module => 'App::GrepUtils',
94             script => ['grep-terms'],
95             'x.command' => ['grep'],
96             },
97              
98             # man
99             {
100             summary => 'Wraps man to search for (and tab-complete) Perl module documentation',
101             module => 'App::manwrap::pm',
102             script => 'manwrap-pm',
103             'x.command' => 'man',
104             },
105              
106             # rsync
107             {
108             summary => 'Wraps rsync to add color to output, particularly highlighting deletion',
109             module => 'App::rsynccolor',
110             script => 'rsynccolor',
111             'x.command' => 'rsync',
112             },
113             {
114             summary => 'Wraps rsync to check that source is newer than target',
115             module => 'App::rsync::new2old',
116             script => 'rsync-new2old',
117             'x.command' => 'rsync',
118             },
119              
120             # ssh
121             {
122             summary => 'Wraps ssh to remember the background terminal color of each user+host you went to',
123             module => 'App::sshwrap::hostcolor',
124             script => 'sshwrap-hostcolor',
125             'x.command' => 'ssh',
126             },
127              
128             ],
129             };
130              
131             1;
132             # ABSTRACT: List of various CLIs that wrap existing Unix commands
133              
134             __END__