]> mj.ucw.cz Git - eval.git/commitdiff
Added the show-submits utility.
authorMartin Mares <mj@ucw.cz>
Thu, 28 Jun 2007 18:31:34 +0000 (20:31 +0200)
committerMartin Mares <mj@ucw.cz>
Thu, 28 Jun 2007 18:31:34 +0000 (20:31 +0200)
bin/mo-create-submit
submit/show-submits [new file with mode: 0755]

index d334d1f6f3569093ff15876bb11c3859b9e738ff..573d658423b06a312c9c0530436b2cbfb388880b 100755 (executable)
@@ -16,14 +16,16 @@ cp $H/certs/ca-cert.pem certs/
 
 rm -rf submit
 mkdir -p submit
-cp $H/submit/submitd submit/
-cp $H/submit/config submit/
+cp $H/submit/{submitd,config,show-submits} submit/
 
 mkdir -p solutions 
 for a in `cd $H && bin/mo-get-users` ; do
        mkdir -p solutions/$a
 done
 
+rm -rf lib
+cp -a $H/submit/lib lib
+
 rm -rf tmp
 mkdir -p tmp
 
diff --git a/submit/show-submits b/submit/show-submits
new file mode 100755 (executable)
index 0000000..ffc8aad
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+
+use lib "lib/perl5";
+use Sherlock::Object;
+
+foreach my $user (split /\s+/,`cd solutions && echo *`) {
+       print "$user:\t";
+       if (open S, "solutions/$user/status") {
+               my @status = ();
+               my $s = new Sherlock::Object;
+               $s->read(\*S) or die "Cannot load status";
+               foreach my $t ($s->getarray("(T")) {
+                       my $task = $t->get("T");
+                       foreach my $p ($t->getarray("(P")) {
+                               my $part = $p->get("P");
+                               my $ver = $p->get("V");
+                               my $name = $task . ($part eq $task ? "" : "/$part");
+                               push @status, "$name(v$ver)";
+                       }
+               }
+               close S;
+               print join(" ", @status), "\n";
+       } else {
+               print "---\n";
+       }
+}