Grep2Ack

Script to use as Geany's Grep tool. Makes Geany use Ack for Find in Files.

Download the script below - you will need to chmod u+x grep2ack.pl so it can be executed.

grep2ack.pl
#!/usr/bin/env perl
 
# Script to convert grep command-line args to ack and execute them.
# Useful when configured as Geany's 'Grep' tool.
 
use strict;
use warnings;
 
my $prev = "";
my @args;
 
foreach my $arg (@ARGV) {
	if ($arg ne '--' and $prev ne '--' and ($arg =~ m/^-[^-]/)) {
		# convert options
		$arg =~ s/[n]//g;
		(!($arg =~ m/r/)) and $arg .= 'n';
		$arg =~ s/[IEr]//g;
		$arg =~ s/F/Q/g;
	}
	push(@args, $arg);
 
	# make argument after '--' the last one
	last if ($prev eq '--');
	$prev = $arg;
}
# prepend command and common options
foreach my $arg (reverse split(/ /, "ack --nogroup --nobinary --sort-files")) {
	@args = ($arg, @args);
}
#~ print join(' ', @args);exit;	# debug
 
# FIXME: this hangs geany until searching is finished
exec @args;
Print/export