Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2023-11-24 19:17:05 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2023-11-29 19:10:14 +0300
commit736e7c709b26804a1fd831e1a7c586ee76cf5958 (patch)
tree53821e4fd5a766c278ab32331bb611afb6a78e16
parent3b617528e779ba2c31aca6f605cee6a28255d089 (diff)
Cygwin: Add '--names-only' flag to cygcheckcygwin-3_4-branch
Add '--names-only' flag to cygcheck, to output just the bare package names. (cherry picked from commit 127166f7070f67a3b322e72119df8a547fd1f85d)
-rw-r--r--winsup/doc/utils.xml11
-rw-r--r--winsup/utils/mingw/cygcheck.cc18
-rw-r--r--winsup/utils/mingw/dump_setup.cc17
3 files changed, 31 insertions, 15 deletions
diff --git a/winsup/doc/utils.xml b/winsup/doc/utils.xml
index 895988037..1479437a7 100644
--- a/winsup/doc/utils.xml
+++ b/winsup/doc/utils.xml
@@ -118,6 +118,7 @@
<command>cygcheck</command>
<arg choice="plain">-c</arg>
<arg>-d</arg>
+ <arg>-n</arg>
<arg><replaceable>PACKAGE</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
@@ -166,7 +167,8 @@ At least one command option or a PROGRAM is required, as shown above.
PROGRAM list library (DLL) dependencies of PROGRAM
-c, --check-setup show installed version of PACKAGE and verify integrity
(or for all installed packages if none specified)
- -d, --dump-only just list packages, do not verify (with -c)
+ -d, --dump-only do not verify packages (with -c)
+ -n, --names-only just list package names (implies -c -d)
-s, --sysinfo produce diagnostic system information (implies -c -d)
-r, --registry also scan registry for Cygwin settings (with -s)
-k, --keycheck perform a keyboard check session (must be run from a
@@ -196,7 +198,7 @@ Note: -c, -f, and -l only report on packages that are currently installed. To
dealing with Cygwin programs. If you are familiar with
<command>dpkg</command> or <command>rpm</command>,
<command>cygcheck</command> is similar in many ways. (The major
- difference is that <command>setup.exe</command> handles installing and
+ difference is that <command>setup</command> handles installing and
uninstalling packages; see <xref linkend="internet-setup"/> for more
information.) </para>
<para> The <literal>-c</literal> option checks the version and status of
@@ -205,11 +207,12 @@ Note: -c, -f, and -l only report on packages that are currently installed. To
with no arguments it lists all packages. A package will be marked
<literal>Incomplete</literal> if files originally installed are no longer
present. The best thing to do in that situation is reinstall the package
- with <command>setup.exe</command>. To see which files are missing, use
+ with <command>setup</command>. To see which files are missing, use
the <literal>-v</literal> option. If you do not need to know the status
of each package and want <command>cygcheck</command> to run faster, add
the <literal>-d</literal> option and <command>cygcheck</command> will
- only output the name and version for each package. </para>
+ only output the name and version for each package. Add the
+ <literal>-n</literal> option to output only the names of packages. </para>
<para> If you list one or more programs on the command line,
<command>cygcheck</command> will diagnose the runtime environment of that
program or programs, providing the names of DLL files on which the
diff --git a/winsup/utils/mingw/cygcheck.cc b/winsup/utils/mingw/cygcheck.cc
index 69f75927f..87067dcbd 100644
--- a/winsup/utils/mingw/cygcheck.cc
+++ b/winsup/utils/mingw/cygcheck.cc
@@ -42,6 +42,7 @@ int givehelp = 0;
int keycheck = 0;
int check_setup = 0;
int dump_only = 0;
+int names_only = 0;
int find_package = 0;
int list_package = 0;
int grep_packages = 0;
@@ -56,7 +57,7 @@ typedef __int64 longlong;
#endif
/* In dump_setup.cc */
-void dump_setup (int, char **, bool);
+void dump_setup (int, char **, bool, bool);
void package_find (int, char **);
void package_list (int, char **);
/* In bloda.cc */
@@ -2113,7 +2114,8 @@ At least one command option or a PROGRAM is required, as shown above.\n\
PROGRAM list library (DLL) dependencies of PROGRAM\n\
-c, --check-setup show installed version of PACKAGE and verify integrity\n\
(or for all installed packages if none specified)\n\
- -d, --dump-only just list packages, do not verify (with -c)\n\
+ -d, --dump-only do not verify packages (with -c)\n\
+ -n, --names-only just list package names (implies -c -d)\n\
-s, --sysinfo produce diagnostic system information (implies -c)\n\
-r, --registry also scan registry for Cygwin settings (with -s)\n\
-k, --keycheck perform a keyboard check session (must be run from a\n\
@@ -2141,6 +2143,7 @@ Note: -c, -f, and -l only report on packages that are currently installed. To\n\
struct option longopts[] = {
{"check-setup", no_argument, NULL, 'c'},
{"dump-only", no_argument, NULL, 'd'},
+ {"names-only", no_argument, NULL, 'n'},
{"sysinfo", no_argument, NULL, 's'},
{"registry", no_argument, NULL, 'r'},
{"verbose", no_argument, NULL, 'v'},
@@ -2154,7 +2157,7 @@ struct option longopts[] = {
{0, no_argument, NULL, 0}
};
-static char opts[] = "cdsrvkflphV";
+static char opts[] = "cdnsrvkflphV";
static void
print_version ()
@@ -2266,6 +2269,11 @@ main (int argc, char **argv)
case 'd':
dump_only = 1;
break;
+ case 'n':
+ check_setup = 1;
+ dump_only = 1;
+ names_only = 1;
+ break;
case 'r':
registry = 1;
break;
@@ -2348,7 +2356,7 @@ main (int argc, char **argv)
}
if (check_setup)
- dump_setup (verbose, argv, !dump_only);
+ dump_setup (verbose, argv, !dump_only, names_only);
else if (find_package)
package_find (verbose, argv);
else if (list_package)
@@ -2367,7 +2375,7 @@ main (int argc, char **argv)
if (!check_setup)
{
puts ("");
- dump_setup (verbose, NULL, !dump_only);
+ dump_setup (verbose, NULL, !dump_only, FALSE);
}
if (!givehelp)
diff --git a/winsup/utils/mingw/dump_setup.cc b/winsup/utils/mingw/dump_setup.cc
index ec70da0db..61aa9563e 100644
--- a/winsup/utils/mingw/dump_setup.cc
+++ b/winsup/utils/mingw/dump_setup.cc
@@ -468,11 +468,13 @@ get_packages (char **argv)
}
void
-dump_setup (int verbose, char **argv, bool check_files)
+dump_setup (int verbose, char **argv, bool check_files, bool names_only)
{
pkgver *packages = get_packages(argv);
- puts ("Cygwin Package Information");
+ if (!names_only)
+ puts ("Cygwin Package Information");
+
if (packages == NULL)
{
puts ("No setup information found");
@@ -486,12 +488,15 @@ dump_setup (int verbose, char **argv, bool check_files)
puts ("");
}
- printf ("%-*s %-*s%s\n", package_len, "Package",
- check_files ? version_len : 7, "Version",
- check_files ? " Status" : "");
+ if (!names_only)
+ printf ("%-*s %-*s%s\n", package_len, "Package",
+ check_files ? version_len : 7, "Version",
+ check_files ? " Status" : "");
for (int i = 0; packages[i].name; i++)
{
- if (check_files)
+ if (names_only)
+ printf ("%s\n", packages[i].name);
+ else if (check_files)
printf ("%-*s %-*s%s\n", package_len, packages[i].name,
version_len, packages[i].ver,
check_package_files (verbose, packages[i].name)