f88761ab5ec5285a35f7078955c50576491a18db
[spider.git] / perl / gdx.pl
1 #!/usr/bin/perl
2 #
3 # grep for expressions in various fields of the dx file
4 #
5
6 # search local then perl directories
7 BEGIN {
8         # root of directory tree for this system
9         $root = "/spider"; 
10         $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
11         
12         unshift @INC, "$root/perl";     # this IS the right way round!
13         unshift @INC, "$root/local";
14 }
15
16 use IO::Handle;
17 use DXUtil;
18 use Bands;
19 use Spot;
20
21 $dxdir = "/spider/cmd/show";
22 $dxcmd = "dx.pl";
23 $s = readfilestr($dxdir, $dxcmd);
24 $dxproc = eval "sub { $s }";
25 die $@ if $@;
26
27 STDOUT->autoflush(1);
28 Spot::init();
29 Bands::load();
30
31 for (;;) {
32   print "expr: ";
33   $expr = <STDIN>;
34   last if $expr =~ /^q/i;
35
36   chomp $expr;
37
38   my @out = map {"$_\n"} &$dxproc({priv=>0,call=>'GDX'}, $expr);
39   shift @out;   # remove return code
40   print @out;
41 }
42