[PATCH] Package content search and listing functionality for cygcheck
Igor Pechtchanski
pechtcha@cs.nyu.edu
Fri Aug 15 23:01:00 GMT 2003
On Fri, 15 Aug 2003, Corinna Vinschen wrote:
> On Fri, Aug 15, 2003 at 03:38:30PM -0400, Igor Pechtchanski wrote:
> > > On Cygwin:
> > >
> > > $ cygcheck -f /usr/bin/tcsh.exe
> > > /usr/bin/tcsh.exe: found in package tcsh-6.12.00-6
> > >
> > > On Linux:
> > >
> > > $ rpm -qf /usr/bin/tcsh
> > > tcsh-6.12.00-134
> > >
> > > Shouldn't we also just print the package name? It doesn't really matter,
> > > just a question...
> >
> > Fixed.
>
> I'm happy!
On second thought, we're not using the verbose flag much. We could
certainly use it for this. If you don't mind, I'll revert the printout to
the more verbose form if -v is passed to cygcheck. Also see below.
> Another difference to Linux is when using -l. rpm -ql doesn't
> prepend the package version to each file list, it just prints a list of
> files of all packages on the command line:
>
> $ rpm -ql bash tcsh
> /bin/bash
> [more bash files]
> /usr/bin/tcsh
> [more tcsh files]
> $
>
> On Cygwin:
>
> $ cygcheck -l bash tcsh
> Package: bash-2.05b-12
> /usr/bin/bash.exe
> [more bash files]
> Package: tcsh-6.12.00-7
> /usr/bin/tcsh.exe
> [more tcsh files]
> $
>
> Should we do it also like rpm or do you like it better as it is?
Let's do it like rpm unless verbose output is requested.
> > Well, I agree with all the above points, so here's another iteration.
> > Same ChangeLog (except for the date -- reposting just in case).
>
> I've checked it in and added some formatting changes. I removed most
> of the `puts("");' lines and the "Use -h to see..." is now only printed
> where it belongs to, to the end of a sysinfo dump. Oh, and the other
> helptext ("Here is where the OS will...") would have been printed also
> on -f -h or -l -h, I've fixed the if clause appropriately.
Thanks.
> Thanks for the patch, it's really cool,
> Corinna
You're welcome. Here's a minor adjustment based on the comments above.
Another thing to do is make cygcheck respect the order of arguments (right
now it lists the packages in alphabetical order).
Igor
==============================================================================
ChangeLog:
2003-08-15 Igor Pechtchanski <pechtcha@cs.nyu.edu>
* dump_setup.cc: (package_list): Make output terse unless
verbose requested. Fix formatting.
(package_find): Ditto.
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha@cs.nyu.edu
ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
-------------- next part --------------
Index: dump_setup.cc
===================================================================
RCS file: /cvs/src/src/winsup/utils/dump_setup.cc,v
retrieving revision 1.10
diff -u -p -r1.10 dump_setup.cc
--- dump_setup.cc 15 Aug 2003 20:26:11 -0000 1.10
+++ dump_setup.cc 15 Aug 2003 22:54:10 -0000
@@ -411,21 +411,22 @@ package_list (int verbose, char **argv)
{
FILE *fp = open_package_list (packages[i].name);
if (!fp)
- {
- if (verbose)
- printf ("Can't open file list /etc/setup/%s.lst.gz for package %s\n",
- packages[i].name, packages[i].name);
- return;
- }
+ {
+ if (verbose)
+ printf ("Can't open file list /etc/setup/%s.lst.gz for package %s\n",
+ packages[i].name, packages[i].name);
+ return;
+ }
- printf ("Package: %s-%s\n", packages[i].name, packages[i].ver);
+ if (verbose)
+ printf ("Package: %s-%s\n", packages[i].name, packages[i].ver);
char buf[MAX_PATH + 1];
while (fgets (buf, MAX_PATH, fp))
{
char *lastchar = strchr(buf, '\n');
if (lastchar[-1] != '/')
- printf (" /%s", buf);
+ printf ("%s/%s", (verbose?" ":""), buf);
}
fclose (fp);
@@ -450,12 +451,7 @@ package_find (int verbose, char **argv)
{
FILE *fp = open_package_list (packages[i].name);
if (!fp)
- {
- if (verbose)
- printf ("Can't open file list /etc/setup/%s.lst.gz for package %s\n",
- packages[i].name, packages[i].name);
return;
- }
char buf[MAX_PATH + 2];
buf[0] = '/';
@@ -479,7 +475,11 @@ package_find (int verbose, char **argv)
if (!a && is_alias)
a = match_argv (argv, filename + 4);
if (a > 0)
- printf ("%s-%s\n", packages[i].name, packages[i].ver);
+ {
+ if (verbose)
+ printf ("%s: found in package ", filename);
+ printf ("%s-%s\n", packages[i].name, packages[i].ver);
+ }
}
}
More information about the Cygwin-patches
mailing list