Date: Thu, 23 Sep 1999 14:51:15 -0700 From: Darryl Okahata <darrylo@sr.hp.com> To: freebsd-current@FreeBSD.ORG Cc: Anton Berezin <tobez@plab.ku.dk> Subject: Re: ccd build failure Message-ID: <199909232151.OAA06536@mina.sr.hp.com> In-Reply-To: Your message of "Thu, 23 Sep 1999 21:42:11 %2B0200." <199909231942.VAA01843@dorifer.heim3.tu-clausthal.de>
next in thread | previous in thread | raw e-mail | index | archive | help
--Multipart_Thu_Sep_23_14:51:14_1999-1 Content-Type: text/plain; charset=US-ASCII Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de> wrote: > Uhm... Maybe I misunderstand what your 100-line perl script > does, but I use the following 3-line shell script instead: > > #!/bin/sh - > cvs status | grep '^File:' | grep -v 'Status: Up-to-date$' > true This works (and is faster), but it doesn't give you concise, nicely-formatted pathnames. Personally, I prefer status like: i386/linux/linux_file.c Locally Modified kern/imgact_elf.c Locally Modified instead of: cvs server: Examining aaa ... cvs server: Examining bbb ... cvs server: Examining ccc ... cvs server: Examining ddd ... cvs server: Examining eee ... File: linux_file.c Status: Locally Modified cvs server: Examining fff ... cvs server: Examining ggg ... File imgact_elf.c Status: Locally Modified I think the script's output is easier to read. [ Hmmm, but you do incidentally bring up a point: it's better to parse the output of "cvs status -R", instead of the ugly way used by the script. I've attached a newer, faster version. Instead of taking around 3 minutes to list the status below /usr/src/sys, this new version takes around 1 minute. I've also applied Anton's fix. ] -- Darryl Okahata darrylo@sr.hp.com DISCLAIMER: this message is the author's personal opinion and does not constitute the support, opinion, or policy of Hewlett-Packard, or of the little green men that have been following him all day. --Multipart_Thu_Sep_23_14:51:14_1999-1 Content-Type: text/plain; charset=US-ASCII Content-Disposition: attachment; filename="cvsinfo" Content-Transfer-Encoding: quoted-printable #! /usr/bin/perl #########################################################################= ###### # # File: cvsinfo # RCS: $Header: $ # Description: List CVS files in the current directory and below that ar= e # not up-to-date. These files are typically those which have # been modified or need updating. # # This is a new, rewritten, version, thanks to feedback from # Anton Berezin <tobez@plab.ku.dk> and # Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>. # # Usage: # # cvsinfo [-a] [-l] # # Options: # # -a Show status of all files, and not just those which # are not up-to-date. # # -l Show status of files in the current directory only. # Do not recurse into subdirectories. # # Author: Darryl Okahata # Created: Thu Sep 23 14:32:34 1999 # Modified: Thu Sep 23 14:45:03 1999 (Darryl Okahata) darrylo@sr.hp.c= om # Language: CPerl # Package: N/A # Status: Experimental # # (C) Copyright 1999, Hewlett-Packard, all rights reserved. # #########################################################################= ###### #########################################################################= ###### require 'getopts.pl'; &Getopts('al'); $all_status =3D 1 if ($opt_a); # Explicitly specify options, just in case the user has overridden them i= n # ~/.cvsrc. if ($opt_l) { $recursive =3D "-l"; } else { $recursive =3D "-R"; } $dir =3D "."; open(IN, "cvs status $recursive 2>&1 |") || die "$!"; while(<IN>) { if (/^cvs\s+server:\s+Examining\s+([^\s].*)$/) { $dir =3D $1; } elsif (/^File:\s+(?:no\s+file\s+)?([^\s]+)\s+Status:\s+(.+)$/i){ $file =3D $1; $status =3D $2; if ($all_status || $status ne 'Up-to-date') { if ($status eq 'Needs Patch') { $status =3D 'Needs Updating'; } printf("%-50s %s\n", ($dir eq '.') ? $file : "$dir/$file", $status); if ($status =3D~ /Locally Modified/) { push(@update_files, $file); } } } elsif (/\[status\s+aborted\]/) { die "$_\n"; } } --Multipart_Thu_Sep_23_14:51:14_1999-1-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909232151.OAA06536>