Date: Wed, 15 Aug 2018 15:17:53 +0200 From: Rodrigo Osorio <ros@bebik.net> To: freebsd-ports@freebsd.org Subject: Re: getting PKGNAME from CONFLICTS Message-ID: <106c6045-c2b3-7da6-5ceb-daa778e52286@bebik.net> In-Reply-To: <16f81513-5324-001f-d1c7-45536835ef15@FreeBSD.org> References: <286CAC11-E9C6-42C4-8D41-97F51EFF1596@yahoo.com> <9823D065-3FCC-4D69-9EB4-9C4CD01C7778@langille.org> <16f81513-5324-001f-d1c7-45536835ef15@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. Cheers, - rodrigo
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?106c6045-c2b3-7da6-5ceb-daa778e52286>