> On Aug 14, 2018, at 3:15 PM, Adam Weinberger <ad...@adamw.org> wrote:
> 
> On Tue, Aug 14, 2018 at 1:13 PM Adam Weinberger <ad...@adamw.org> wrote:
>> 
>> On Tue, Aug 14, 2018 at 11:54 AM Dan Langille <d...@langille.org> wrote:
>>> 
>>> I am in the process of adding FreshPorts support for CONFLICTS[1].
>>> 
>>> I reference www/p5-CGI only because it had a recent commit and it contains 
>>> a CONFLICTS directive.
>>> 
>>> At https://dev.freshports.org/www/p5-CGI/ you can see:
>>> 
>>>    CONFLICTS: p5-CGI.pm-[1-3]*
>>> 
>>> My goal is to allow a link to the search page or to the page for that port.
>>> 
>>> The CONFLICTS field is a 'A list of package name patterns'[2]
>>> 
>>> I interpret this to mean the values returned by make -V PKGNAME and the 
>>> documentation[3] indicates this is correct.
>>> 
>>> Thus, the CONFLICTS matches https://dev.freshports.org/www/p5-CGI.pm [4]
>>> 
>>> To extract the PKGNAME values from the CONFLICTS I will need to remove 
>>> everything after the trailing dash.
>>> 
>>> Can someone do me up a regex for that please? regex is a weak point for me. 
>>> Or point me into the Mk infrastructure to locate an existing solution.
>> 
>> Hi Dan,
>> 
>> I suspect that the best you can get is to make some assumptions about
>> what versions look like. This will catch most, but not all:
>> 
>> /^(.*?)-[-_\.,0-9ab]+$/
> 
> On second thought, 'p' should be in there too. [-_\.,0-9abp].

I think we are trying to match the regex instead of noticing a regex and 
removing it.

Am I doing it wrong?

 $ cat ~/tmp/pkg-name.php
<?php

$CONFLICTS = "p5-CGI.pm-[1-3]*";

#$pkgname = preg_match("/(.*)[-_\.,0-9,abp]*/", $CONFLICTS, $matches);
 $pkgname = preg_match("/(.*)-[\[.*\]+]/", $CONFLICTS, $matches);

print_r($matches);

 $ php  ~/tmp/pkg-name.php
Array
(
    [0] => p5-CGI.pm-[
    [1] => p5-CGI.pm
)

It's close, but not quite.

Thank you.

--
Dan Langille - BSDCan / PGCon
d...@langille.org

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to