At 2:27 PM -0400 9/30/14, Lawrence Velázquez wrote:
On Sep 30, 2014, at 12:00 PM, Brandon Allbery <[email protected]> wrote:
> On Tue, Sep 30, 2014 at 11:44 AM, Craig Treleaven <[email protected]> wrote: >> I have only rudimentary acquaintance with sed and less with awk. I'd like to learn more and this seemed like an opportunity to do so. [...]
 >
> Very, very painfully. I think I could do it, with a LOT of fiddling, but would very much prefer to use a more appropriate tool. awk is somewhat better, but I'd reach for perl/python/ruby first.

[vq's sed version deleted ...]

As I said, it was a learning exercise and I've got a working version with gawk. (Awk lacks the sub()/gsub() string functions.)

My version is:

---------cut from here-------
# identify port name lines by the phrase " has the variants"
/ has the variants/ {
 portname = $1
 next
}

# deal with the default variant lines, they start with [+]
# (which is a crazy string to match with a regex)
# note that the regex in the pattern match and the sub() function are
# (must be) wildly different!
/^\[+./ {
  sub("\\[\\+.", "   ")
  print portname ", "  $1 ", " "Default"
  next
}

# All the other variant lines start with 3 spaces, followed by a lower case
# variant name
/^   [a-z]/ {
  print portname ", "  $1 ", " "N"
  next
}
-------------to here------------

And it works as follows:
$ port variants php53-mysql php54-mysql |grep -v conflicts |grep -e mariadb -e mysql -e percona | cut -d : -f 1 | gawk -f rejig.awk -
php53-mysql, mariadb, N
php53-mysql, mysql4, N
php53-mysql, mysql5, N
php53-mysql, mysql51, N
php53-mysql, mysql55, N
php53-mysql, mysql56, N
php53-mysql, mysqlnd, Default
php53-mysql, percona, N
php54-mysql, mariadb, N
php54-mysql, mysql4, N
php54-mysql, mysql5, N
php54-mysql, mysql51, N
php54-mysql, mysql55, N
php54-mysql, mysql56, N
php54-mysql, mysqlnd, Default
php54-mysql, percona, N

Now to see if I can actually run this against the 89 ports that appear to have mysql-related variants...

Craig
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to