renamed gdx.pl as showdx
[spider.git] / perl / showdx
diff --git a/perl/showdx b/perl/showdx
new file mode 100755 (executable)
index 0000000..9af8f41
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+#
+# Implement an external "show/dx" command
+#
+# Copyright (c) 1998-2000 Dirk Koopman G1TLH
+#
+# $Id$
+#
+
+# search local then perl directories
+BEGIN {
+       # root of directory tree for this system
+       $root = "/spider"; 
+       $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
+       
+       unshift @INC, "$root/perl";     # this IS the right way round!
+       unshift @INC, "$root/local";
+}
+
+use IO::Handle;
+use DXUtil;
+use Bands;
+use Spot;
+
+$dxdir = "/spider/cmd/show";
+$dxcmd = "dx.pl";
+$s = readfilestr($dxdir, $dxcmd);
+$dxproc = eval "sub { $s }";
+die $@ if $@;
+
+STDOUT->autoflush(1);
+Spot::init();
+Bands::load();
+
+$expr = join ' ', @ARGV if @ARGV;
+
+for (;;) {
+       if ($expr) {
+               $myexpr = $expr;
+       } else {
+               print "show/dx: ";
+               $myexpr = <STDIN>;
+               last unless defined $myexpr;
+               chomp $myexpr;
+               last if $myexpr =~ /^q$/i;
+       }
+       my @out = map {"$_\n"} &$dxproc({priv=>0,call=>'GDX'}, $myexpr);
+       shift @out;   # remove return code
+       print @out;
+       last if $expr;
+}
+exit(0);
+