public inbox for cygwin-cvs@sourceware.org help / color / mirror / Atom feed
From: Jon Turney <jturney@sourceware.org> To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin/main] Cygwin: Add '--names-only' flag to cygcheck Date: Wed, 29 Nov 2023 14:36:20 +0000 (GMT) [thread overview] Message-ID: <20231129143620.B1842385AC2E@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=127166f7070f67a3b322e72119df8a547fd1f85d commit 127166f7070f67a3b322e72119df8a547fd1f85d Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Fri Nov 24 16:17:05 2023 +0000 Cygwin: Add '--names-only' flag to cygcheck Add '--names-only' flag to cygcheck, to output just the bare package names. Diff: --- winsup/doc/utils.xml | 11 +++++++---- winsup/utils/mingw/cygcheck.cc | 18 +++++++++++++----- 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 0390db20f..ad17c9796 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 9d6f19203..1dde2ecba 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 06aa06f81..050679a0d 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)
reply other threads:[~2023-11-29 14:36 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231129143620.B1842385AC2E@sourceware.org \ --to=jturney@sourceware.org \ --cc=cygwin-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).