getting PKGNAME from CONFLICTS

Dan Langille dan at langille.org
Wed Aug 15 15:56:35 UTC 2018


> On Aug 15, 2018, at 9:17 AM, Rodrigo Osorio <ros at 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 at 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
dan at langille.org


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 658 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20180815/d99ba83f/attachment.sig>


More information about the freebsd-ports mailing list