> On Aug 15, 2018, at 9:17 AM, Rodrigo Osorio <r...@bebik.net> wrote: > > On 08/15/18 14:46, Matthew Seaman wrote: >> On 15/08/2018 00:35, Dan Langille wrote: >>>> On Aug 14, 2018, at 2:55 PM, Mark Millard via freebsd-ports >>>> <freebsd-ports@freebsd.org> wrote: >>>> >>>> >>>> Dan Langille dan at langille.org wrote on >>>> Tue Aug 14 17:54:01 UTC 2018 : >>>> >>>>> . . . >>>>> At https://dev.freshports.org/www/p5-CGI/ you can see: >>>>> >>>>> CONFLICTS: p5-CGI.pm-[1-3]* >>>>> . . . >>>>> To extract the PKGNAME values from the CONFLICTS I will need to remove >>>>> everything after the trailing dash. >>>>> . . . >>>> p5- >>>> vs. >>>> p5-CGI.pm- >>>> vs. >>>> p5-CGI.pm-[1- >>>> >>>> It looks to me like "trailing dash" probably has a >>>> complicated definition where some "-"(s) may exist >>>> that are to be ignored after the one of interest. >>>> In the example I'm guessing that the middle >>>> "-" is intended (so "p5-CGI.pm-"). >>> Agreed. The hard part is identifying the regex and deleting it from >>> consideration. >>> >> If you don't mind spawning a new process, you can just do: >> >> % pkg search -qg 'p5-CGI.pm-[1-3]*' >> p5-CGI.pm-3.63_1,1 >> >> This does assume your pkg(8) is configured to use a repository with all >> possible packages available. The default FreeBSD repositories are a >> good choice in that regard. >> >> Or if you already have a database table with all of the package names >> and versions, then you'll presumably want to change the glob expression >> into a regex match (in this case something like '^p5-CGI\.pm-[1-3].*') >> Unless there's a PG extension that allows using glob(3) to match >> strings? I can't see one after a pretty cursory search. (sqlite has >> glob(3) support, which is what the pkg(8) command above is using under >> the hood.) >> >> Cheers, >> >> Matthew >> > Hi, > > Why do you uses regexp instead of evaluating them with fnmatch ? > The function is available (at least) in php, python and ruby.
I want to extract PKGNAME from CONFLICTS. I was not trying to match anything with the raw CONFLICTS field. With PKGNAME, the application can then search the database. -- Dan Langille - BSDCan / PGCon d...@langille.org
signature.asc
Description: Message signed with OpenPGP