diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2023-11-24 16:17:05 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2023-11-29 14:34:10 +0000 |
commit | 127166f7070f67a3b322e72119df8a547fd1f85d (patch) | |
tree | 68db3096119931069391564cc856453158e3edd4 | |
parent | 5f15d7c5817b07a6b18cbab17342c95cb7b42be4 (diff) | |
download | newlib-127166f7070f67a3b322e72119df8a547fd1f85d.zip newlib-127166f7070f67a3b322e72119df8a547fd1f85d.tar.gz newlib-127166f7070f67a3b322e72119df8a547fd1f85d.tar.bz2 |
Cygwin: Add '--names-only' flag to cygcheck
Add '--names-only' flag to cygcheck, to output just the bare package
names.
-rw-r--r-- | winsup/doc/utils.xml | 11 | ||||
-rw-r--r-- | winsup/utils/mingw/cygcheck.cc | 18 | ||||
-rw-r--r-- | winsup/utils/mingw/dump_setup.cc | 17 |
3 files changed, 31 insertions, 15 deletions
diff --git a/winsup/doc/utils.xml b/winsup/doc/utils.xml index 0390db2..ad17c97 100644 --- a/winsup/doc/utils.xml +++ b/winsup/doc/utils.xml @@ -135,6 +135,7 @@ <command>cygcheck</command> <arg choice="plain">-c</arg> <arg>-d</arg> + <arg>-n</arg> <arg><replaceable>PACKAGE</replaceable></arg> </cmdsynopsis> <cmdsynopsis> @@ -201,7 +202,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 @@ -251,7 +253,7 @@ Notes: 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 @@ -260,11 +262,12 @@ Notes: 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 9d6f192..1dde2ec 100644 --- a/winsup/utils/mingw/cygcheck.cc +++ b/winsup/utils/mingw/cygcheck.cc @@ -55,6 +55,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; @@ -84,7 +85,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 */ @@ -2913,7 +2914,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\ @@ -2962,6 +2964,7 @@ Notes:\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'}, @@ -2985,7 +2988,7 @@ struct option longopts[] = { {0, no_argument, NULL, 0} }; -static char opts[] = "cdsrvkfliephV"; +static char opts[] = "cdnsrvkfliephV"; static void print_version () @@ -3093,6 +3096,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; @@ -3205,7 +3213,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) @@ -3224,7 +3232,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 06aa06f..050679a 100644 --- a/winsup/utils/mingw/dump_setup.cc +++ b/winsup/utils/mingw/dump_setup.cc @@ -466,11 +466,13 @@ get_installed_packages (char **argv, size_t *count) } 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_installed_packages (argv); - puts ("Cygwin Package Information"); + if (!names_only) + puts ("Cygwin Package Information"); + if (packages == NULL) { puts ("No setup information found"); @@ -484,12 +486,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) |