#!/usr/bin/perl use strict; use CGI qw(:standard excapeHTML); # *** BEGIN Customization *** use constant DIR => "/memberroot/christo/public_html/strap/metannogen/demo_datasets"; use constant PASSWORD => ""; # *** END Customization *** print "Content-type:text/plain\n\n"; my $query = new CGI; my $IP=$ENV{REMOTE_ADDR}; my $datasets=$query->param("datasets"); my $passwd=$query->param("passwd"); #if (!$datasets) { $datasets="all\tR00573\t"; } # if (!$datasets) { # open(DS,"/laura/people/christo/kannWeg/R00573.dataset") || die("Could not open file!"); # my @raw=; # $datasets.=@raw[0]; # close(DS); # } if (!$datasets) { my $fn; opendir(DIRHANDLE, DIR) or die("Could not open ".DIR); while( defined($fn=readdir(DIRHANDLE))) { if ( $fn =~ /.dataset$/ ) { open(DS,"<",DIR."/".$fn); while() { chomp; print $_; print "\n"; } } } } else { print "passwd=$passwd \n"; if (index(DIR,'/demo')<0 && !($passwd eq PASSWORD || "" eq PASSWORD )) { print("Your computer is not authorized to change datasets!"); exit(1);} foreach my $line (split(/\n/, $datasets)) { my @fields=split(/\t/, $line); my $nFields=@fields; #print "nFields=$nFields\n"; if ($nFields>1) { my $log=DIR."/LOG"; #print " LOG= $log\n"; open (LOG,">>$log"); print LOG "#\t".time()."\t".gmtime()."\t$IP\n$line\n"; close(LOG); my $id=@fields[1]; my $srvTime=@fields[10]; $id=~s/[^.A-Za-z0-9-]/_/g; my $file=DIR."/$id.dataset"; if ( -e $file) { my $size = -s $file; my $mtime= (stat($file))[9]; print "Old size=$size mtime=$mtime\n"; if ($srvTime>0 && $srvTime<$mtime) { print "\n# Someone has CHANGED_THE_DATASET: ".( time() - $mtime )." seconds ago. srvTime=$srvTime mtime=$mtime\n"; open(FILE, $file); my @data = ; close(FILE); foreach (@data) { print $_."\n"; } } print "\n\n"; } if ($nFields>3) { open(DS,">",$file); print DS "$line\n"; close(DS); print "Wrote $file\n"; } else { unlink($file); print "Deleted $file\n"; } } else { print "Too few tabs. Ignore line: $line\n"; } } } print "\n#CURRENTTIME=".time()."\n"; exit(0); # put ~/java/web/metannogen/metannogen.pl -o /usr/lib/cgi-bin/bioinf/metannogenHoppe.pl # chmod a+x /usr/lib/cgi-bin/bioinf/metannogenHoppe.pl # put ~/java/web/metannogen/metannogen.pl -o /var/www/bioinf/strap/metannogen/metannogen.pl.txt # put ~/java/web/metannogen/metannogen.pl -o /usr/lib/cgi-bin/bioinf/metannogenDemo.pl # chmod a+x /usr/lib/cgi-bin/bioinf/metannogenDemo.pl # w3m http://www-intern.charite.de/cgi-bin/bioinf/metannogenHoppe.pl # Metannogen -datasets /nfs/sysbio/Forschung/HepatoNet/FlatNet/all.datasets -upload http://www-intern.charite.de/cgi-bin/bioinf/metannogenHoppe.pl -passwd hoppe2009 # scp ~/java/web/metannogen/metannogen.pl $STRAP_DIR_B/cgi-bin/metannogenDemo.pl