Bio-BioStudio
view release on metacpan or search on metacpan
lib/Bio/BioStudio/Foswiki.pm view on Meta::CPAN
}
=head2 wiki_add_feature
=cut
sub wiki_add_feature
{
my ($pa, $BS, $feat, $buds) = @_;
my $path = $pa->{CHRPATH} . q{/} . $feat->Tag_load_id . ".txt";
my @arr = ($pa->{AUTHSTR});
if ($BS->{enable_gbrowse})
{
my $text = "See this feature in GBrowse ($pa->{NEWCHROMOSOME})";
push @arr, make_link($feat, $text, $pa, $BS) . "<br>";
}
foreach my $att ($feat->get_all_tags())
{
next if $att eq "load_id";
push @arr, "$att: " . join(", ", $feat->get_tag_values($att)) . "<br>";
}
foreach my $bud (%{$buds})
{
push @arr, "$bud: [[" . $buds->{$bud}->Tag_load_id . "]]<br>";
}
my $type = $feat->primary_tag();
make_new_topic($path, $pa->{PARENTS}->{$type}, 0, \@arr, $BS);
return;
}
=head2 wiki_update_feature
=cut
sub wiki_update_feature
{
my ($pa, $BS, $feat, $add, $flag1, $note, $flag2) = @_;
my $path = $pa->{CHRPATH} . q{/} . $feat->Tag_load_id . ".txt";
my $text = $flag2
? "See this feature in GBrowse ($pa->{OLDCHROMOSOME})"
: "See this feature in GBrowse ($pa->{NEWCHROMOSOME})";
open (my $WH, '>>', "$path") || croak ("CAN'T WORK ON WIKI!");
if ($flag1)
{
print $WH "\n" . $pa->{AUTHSTR};
if ($BS->{enable_gbrowse})
{
print $WH make_link($feat, $text, $pa, $BS);
}
print $WH "\n$note" if ($note);
}
print $WH "$add" if ($add);
close $WH;
return;
}
=head2 update_wiki
=cut
sub update_wiki
{
my ($BS, $pa, $commentarr) = @_;
my $VERPATH = $pa->{CHRPATH} . "/$pa->{NEWCHROMOSOME}.txt";
my @arr = @{$commentarr};
if ($BS->{enable_gbrowse})
{
my $verlink = "http://$BS->{this_server}/cgi-bin/gb2/gbrowse/$pa->{NEWCHROMOSOME}";
my $href = "<a href=\"$verlink\" target=\"_blank\" style=\"text-decoration:none\">See this version in GBrowse</a>\n";
unshift @arr, $href;
}
unshift @arr, "-- [[Main." . $BS->{wiki_user} . "]] - " . $time{'dd Mon yyyy'} . "\n";
make_new_topic($VERPATH, "Versions", 0, \@arr, $BS);
return;
}
=head2 make_new_web
=cut
sub make_new_web
{
my ($webpath, $linkreplace, $BS) = @_;
my $now = time;
my $template = $BS->{wiki_default_web} . q{/};
$linkreplace = q{} unless $linkreplace;
my $repl = q{/} . $BS->{wiki_placeholder} . q{/} . $linkreplace . q{/};
mkdir $webpath;
system "cp -R $template $webpath";
opendir(WEB, $webpath);
my @FILES= readdir(WEB);
closedir(WEB);
my $auth = "/ProjectContributor/$BS->{wiki_user}/";
my $time = "/date=\".+\"/date=\"$now\"/";
foreach my $name (grep {! -d && $_ !~ m{\A\.}msx} @FILES)
{
my $path = $webpath . q{/} . $name;
my $temp = $path . "_tmp";
system ("sed -e 's$auth' $path >$temp && mv $temp $path");
system ("sed -e 's$time' $path >$temp && mv $temp $path");
if ($name eq "WebHome.txt")
{
system ("sed -e 's$repl' $path >$temp && mv $temp $path");
}
}
return;
}
=head2 make_new_topic
=cut
sub make_new_topic
{
my ($path, $parent, $flag, $arrref, $BS) = @_;
my $now = time;
open (my $TOPIC, '>', "$path") || croak ("Can't open $path: $OS_ERROR");
print $TOPIC "\%META:TOPICINFO{author=\"$BS->{wiki_user}\" comment=\"\"";
print $TOPIC " date=\"$now\" format=\"1.1\" version=\"1\"}\%\n";
print $TOPIC "\%META:TOPICPARENT{name=\"$parent\"}\%\n";
if ($flag)
( run in 0.794 second using v1.01-cache-2.11-cpan-df04353d9ac )