This file is indexed.

/usr/bin/open-raw.pl is in kphotoalbum 5.3-1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/perl
# Copyright 2012-2016 Miika Turkia <miika.turkia@gmail.com>
#
# Try to locate RAW files to open them in external editor from
# GUI application like KPhotoAlbum

my @params;

# Raw extensions you use. If you use Ufraw you might want to add ufraw
# as the first extension in the list
# Using same file format list as KPhotoAlbum from
# http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c
my @rawExt = (
	"3fr","arw","bay","bmq","cine","cr2","crw","cs1","dc2","dcr","dng","erf","fff","hdr","ia","k25","kc2","kdc","mdc","mef","mos","mrw","nef","nrw","orf","pef","pxn","qtk","raf","raw","rdc","rw2","sr2","srf","sti","tif","x3f","jpg"
);

# The application you use to develop the RAW files
my @raw_converters = ( "/usr/bin/AfterShot2X64", "/usr/bin/AfterShot2",
	"/usr/bin/AfterShotPro", "/usr/bin/bibble5",
	"/usr/bin/ufraw", "/usr/bin/rt", "/usr/bin/darktable" );
my @ASP_work = ( "/usr/bin/AfterShot3X64" );
my $extApp = "";
my $workApp = "";

foreach my $app (@ASP_work) {
	if ( -e $app ) {
		$workApp = $app;
		last;
	}
}

foreach my $app (@raw_converters) {
	if ( -e $app ) {
		$extApp = $app;
		last;
	}
}

# If you want to use specific converter, just assign it below
#$extApp = "/usr/bin/ufraw";

if ($extApp =~ m/^$/ && $workApp =~ m/^$/) {
	my $errMsg = "Could not find RAW developer. If you have one, " .
		"script open-raw.pl must be updated.";
	exec("notify-send \"$errMsg\"");
}

# A default regular expression for detecting the original RAW file
# We attempt to update this with the one used by KPhotoAlbum later
my $regexp = "(_(v){0,1}([0-9]){1,2}){0,1}\\.(jpg|JPG|tif|TIF|png|PNG)";

# Attempt to read the KPA's regular expression from configuration file
sub read_config {
	open CONFIG, "<", $ENV{"HOME"} . "/.kde/share/config/kphotoalbumrc" or return;
	while (<CONFIG>) {
		/modifiedFileComponent/ && do {
			$regexp = $_;
			$regexp =~ s/modifiedFileComponent=//;
			$regexp =~ s/\\\\/\\/g;
			chomp $regexp;
		};
	}
}

sub uniq {
	return keys %{{ map { $_ => 1 } @_ }};
}

read_config();

# Process the parameters and search for "original" files
foreach my $argnum (0..$#ARGV) {
	my $found = 0;
	my $file = "$ARGV[$argnum]";

	$file =~ s/$regexp//;

	foreach my $ext (@rawExt) {
		if (-e "$file.$ext") {
			push @params, "$file.$ext";
			$found = 1;
			last;
		} else {
			$ext = uc($ext);
			if (-e "$file.$ext") {
				push @params, "$file.$ext";
				$found = 1;
				last;
			}
		}
	}
	push @params, "$ARGV[$argnum]" if not $found;
}

my @uniqParams = uniq(@params);

if ($workApp =~ m/^.+$/) {
	my $workFile = "/tmp/kpa-asp-" . $$ . "_" . int(rand(100000)) . ".work";

	srand;
	open WORK, ">", $workFile;

	foreach my $file (@uniqParams) {
		print WORK $file . "\n";
	}

	close WORK;
	exec "$workApp $workFile";
	exit;
}

exec "$extApp @uniqParams";