};
my @put_first = qw(jalview jvl);
+my @non_primary = qw(mmcif mmcif2 pdb);
+
my $v = ($i4jversion >= 8)?$i4jversion:"";
my $i4jtemplatefile = "file_associations_template-install4j${v}.xml";
my $i4jtemplate;
my $i4jautofile = $i4jtemplatefile;
$i4jautofile =~ s/template/auto$1/;
+for my $key (sort keys %$add_associations) {
+ my $a = $add_associations->{$key};
+ warn("Known file association for $a->{shortname} (".join(",",@{$a->{extensions}}).")\n");
+}
+
open(MA,">$macautofile") or die ("Could not open '$macautofile' for writing");
print MA "<key>CFBundleDocumentTypes</key>\n<array>\n\n";
name => $name,
extensions => \@extensions
};
- warn("Adding file association for $shortname (".join(",",@extensions).")\n");
+ warn("Reading file association for $shortname (".join(",",@extensions).")\n");
}
}
close(IN);
my $num = 0;
my $i4jcount = 0;
-my @ordered = @put_first;
+my @ordered = (@put_first, @non_primary);
for my $key (sort keys %all_associations) {
next if grep($_ eq $key, @ordered);
push(@ordered, $key);
my $extensions = $a->{extensions};
my @extensions = @$extensions;
- # multiple extensions now all dealt with together since i4j 8.0.1
- #for my $ext (@extensions) {
- # $num++;
- #}
$num++
-
- #delete $all_associations{$shortname};
- #print "NUM: $num\n";
}
+warn("--\n");
for my $shortname (@ordered) {
my $a = $all_associations{$shortname};
my $extensions = $a->{extensions};
my $mimetype = $mimetypes->{$shortname};
$mimetype = "application/x-$shortname+txt" unless $mimetype;
- #$mimetype = "application/x-$shortname" unless $mimetype;
my $iconfile = $a->{iconfile};
$iconfile = "Jalview-File" unless $iconfile;
+ my $primary = (! grep($_ eq $shortname, @non_primary));
+ my $primarystring = $primary?"true":"false";
+ my $role = $primary?"Editor":"Viewer";
+
my @extensions = @$extensions;
- #warn("LINE: $line\nFound extensions '".join("', '", @extensions)."' for $name Files ($shortname)'n");
my $xname = xml_escape($name);
my $xmimetype = xml_escape($mimetype);
my $xshortname = xml_escape($shortname);
my $xiconfile = xml_escape($iconfile);
+ my $xrole = xml_escape($role);
+ my $xprimarystring = xml_escape($primarystring);
my $macentry = $mactemplate;
$macentry =~ s/\$\$NAME\$\$/$xname/g;
$macentry =~ s/\$\$SHORTNAME\$\$/$xshortname/g;
$macentry =~ s/\$\$MIMETYPE\$\$/$xmimetype/g;
$macentry =~ s/\$\$ICONFILE\$\$/$xiconfile/g;
+ $macentry =~ s/\$\$ROLE\$\$/$xrole/g;
+ $macentry =~ s/\$\$PRIMARY\$\$/$xprimarystring/g;
while ($macentry =~ m/\$\$([^\$]*)EXTENSIONS([^\$]*)\$\$/) {
my $pre = $1;
my $post = $2;
$i4jentry =~ s/\$\$SHORTNAME\$\$/$xshortname/g;
$i4jentry =~ s/\$\$MIMETYPE\$\$/$xmimetype/g;
$i4jentry =~ s/\$\$ICONFILE\$\$/$xiconfile/g;
-
-# multiple extensions now all dealt with together since i4j 8.0.1
-# my $unixext;
-# for my $ext (sort @extensions) {
-# if (not defined($unixext)) {
-# $unixext = $ext;
-# next;
-# }
-# if (length($ext) < length($unixext)) {
-# $unixext = $ext;
-# next;
-# }
-# }
-# for my $ext (@extensions) {
-# $i4jcount++;
-# #print "COUNT: $i4jcount\n";
-# my $progresspercent = int(($i4jcount/$num)*100);
-# #print "PC: $progresspercent\n";
-# $progresspercent = 100 if $progresspercent > 100;
-# my $xext = xml_escape($ext);
-# my $addunixextension = ($ext eq $unixext)?"true":"false";
-#
-# my $i4jextentry = $i4jentry;
-# $i4jextentry =~ s/\$\$ADDUNIXEXTENSION\$\$/$addunixextension/g;
-# $i4jextentry =~ s/\$\$EXTENSION\$\$/$xext/g;
-# $i4jextentry =~ s/\$\$PROGRESSPERCENT\$\$/$progresspercent/g;
-# $i4jextentry =~ s/\$\$ID\$\$/$id/g;
-# $id++;
-# $i4jextentry =~ s/\$\$ID1\$\$/$id/g;
-# $id++;
-# $i4jextentry =~ s/\$\$ID2\$\$/$id/g;
-# $id++;
-#
-# print IA $i4jextentry;
-# }
+ $i4jentry =~ s/\$\$PRIMARY\$\$/$xprimarystring/g;
my $ext = join(",",sort(@extensions));
my $xdisplayext = xml_escape(join(", ", map(".$_",sort(@extensions))));
$i4jcount++;
-#print "COUNT: $i4jcount\n";
my $progresspercent = int(($i4jcount/$num)*100);
-#print "PC: $progresspercent\n";
$progresspercent = 100 if $progresspercent > 100;
my $xext = xml_escape($ext);
- #my $addunixextension = ($ext eq $unixext)?"true":"false";
my $addunixextension = "true";
- my $i4jextentry = $i4jentry;
- $i4jextentry =~ s/\$\$ADDUNIXEXTENSION\$\$/$addunixextension/g;
- $i4jextentry =~ s/\$\$EXTENSION\$\$/$xext/g;
- $i4jextentry =~ s/\$\$DISPLAYEXTENSION\$\$/$xdisplayext/g;
- $i4jextentry =~ s/\$\$PROGRESSPERCENT\$\$/$progresspercent/g;
- $i4jextentry =~ s/\$\$ID\$\$/$id/g;
+ $i4jentry =~ s/\$\$ADDUNIXEXTENSION\$\$/$addunixextension/g;
+ $i4jentry =~ s/\$\$EXTENSION\$\$/$xext/g;
+ $i4jentry =~ s/\$\$DISPLAYEXTENSION\$\$/$xdisplayext/g;
+ $i4jentry =~ s/\$\$PROGRESSPERCENT\$\$/$progresspercent/g;
+ $i4jentry =~ s/\$\$ID\$\$/$id/g;
$id++;
- $i4jextentry =~ s/\$\$ID1\$\$/$id/g;
+ $i4jentry =~ s/\$\$ID1\$\$/$id/g;
$id++;
- $i4jextentry =~ s/\$\$ID2\$\$/$id/g;
+ $i4jentry =~ s/\$\$ID2\$\$/$id/g;
$id++;
- print IA $i4jextentry;
-
+ print IA $i4jentry;
delete $all_associations{$shortname};
+ warn("Writing entry for $name (".join(",",@$extensions).": $mimetype)\n");
}
close(IA);
print MA "</array>\n";
+#
+# print MA "
+# <!-- BEGIN FROM PERL SCRIPT -->
+# <key>CFBundleURLTypes</key>
+# <array>
+# <dict>
+# <key>CFBundleURLName</key>
+# <string>org.jalview.jalview-desktop.url.jalview</string>
+# <key>CFBundleTypeRole</key>
+# <string>Editor</string>
+# <key>CFBundleURLSchemes</key>
+# <array>
+# <string>jalview</string>
+# </array>
+# </dict>
+# </array>
+# <!-- END FROM PERL SCRIPT -->
+# ";
close(MA);
sub xml_escape {