diff tools/rdock/bin/sdmodify @ 0:bc03dbb6eb37 draft

planemo upload commit 781926e52355f7805db8d9a4ccafeff397b19aa4-dirty
author marpiech
date Mon, 29 Aug 2016 03:38:13 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/rdock/bin/sdmodify	Mon Aug 29 03:38:13 2016 -0400
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+# Script to set the first title line equal to a given data field
+#
+# Usage:  sdmodify -f<DataField> [sdFiles]
+#
+#         If sdFiles not given, reads from standard input
+#         Output is to standard output
+
+use lib "$ENV{'RBT_ROOT'}/lib";
+
+use SDRecord;
+
+my $SDMODKEY = "ID";
+
+#Print help if no command line arguments
+printHelpAndExit() if (scalar(@ARGV) == 0);
+
+#Parse command line arguments
+my @files;
+while (scalar(@ARGV)) {
+  my $arg = shift @ARGV;
+  printHelpAndExit() if ($arg eq '-h');
+  if (index($arg,'-f')==0) {
+    $SDMODKEY = substr($arg,2);#modification key
+  }
+  else {
+    push @files,$arg;#must be a filename
+  }
+}
+push @ARGV,@files;#put the filenames back in the arg list
+
+#read records
+my $sdRec = new SDRecord;
+my $nRec=0;
+while ($sdRec->readRec('DATA'=>1,'LINES'=>1)) {
+  $sdRec->addData('_REC' => ++$nRec);#add record# as temp data field
+  #set the first line equal to the given data field
+  my $nLines = scalar (@{$sdRec->{'LINES'}});
+  if ($nLines > 0) {
+    ${$sdRec->{'LINES'}}[0] = $sdRec->{'DATA'}->{$SDMODKEY};
+  }
+  $sdRec->writeRec();
+}
+
+#!/usr/bin/perl
+# Script to set the first title line equal to a given data field
+#
+# Usage:  sdmodify -f<DataField> [sdFiles]
+#
+#         If sdFiles not given, reads from standard input
+#         Output is to standard output
+
+sub printHelpAndExit {
+  print "\nScript to set the first title line equal to a given data field.\n";
+  print "\nUsage:\tsdmodify -f<DataField> [sdFiles]\n";
+  print "\n\tIf sdFiles not given, reads from standard input.\n";
+  print "\n\tOutput is to standard output.\n\n";
+  exit;
+}