fixed minor bugs in demo scripts and run_stem
[urisagit/Stem.git] / bin / tail_demo
CommitLineData
4536f655 1#!/usr/local/bin/perl -s
2
3$line_cnt = 10 ;
4$offset = 175 ;
5$base_off = 0 ;
6$xskip = ( $^O eq 'solaris' ) ? 600 : 500 ;
7
3104a1f1 8use File::Basename qw( basename );
9$ENV{PATH} .= ':' . basename( $0 ) . ':.';
10for my $prog qw( run_stem xterm telnet ) {
11 die "Can't find $prog in PATH\n" if
12 system( "which $prog >/dev/null 2>&1" ) != 0;
13}
14
4536f655 15my @children ;
16
17my $tail_dir = 'tail' ;
18
19$SIG{ 'INT' } = \&cleanup ;
20
21if ( $s ) {
22
23 $ssfe = 'ssfe' ;
24 $prompt = '-prompt Stem:' ;
25 $echo = 'console_echo=1'
26}
27
28-d $tail_dir or mkdir $tail_dir, 0722 or
29 die "can't create $tail_dir working directory" ;
30
31foreach my $log ( qw( foo bar bar_status ) ) {
32 unlink "$tail_dir/$log.log" ;
33}
34
35
36foreach $cmd ( split /\n/, <<EOT ) {
37xterm -T Archive -n Archive -geometry 80x35+0+0 -e $ssfe $prompt run_stem $echo archive
38xterm -T Monitor -n Monitor -geometry 80x35+$xskip+0 -e $ssfe $prompt run_stem $echo monitor
39xterm -T Tail -n Tail -geometry 80x20+275+420
40EOT
41
42 print "$cmd\n" ;
43
44 @cmd = split ' ', $cmd ;
45
46 s/:/: / for @cmd ;
47
48 chdir $tail_dir unless $cmd =~ /run_stem/ ;
49
50 fork_exec( @cmd ) ;
51
52 sleep 2 ;
53}
54
3104a1f1 551 while wait() != -1;
56
57exit;
4536f655 58
4536f655 59
4536f655 60
61sub cleanup {
62
63 print "clean up\n" ;
64
65 kill 9, @children ;
66 wait ;
67 exit ;
68
69}
70
71sub fork_exec {
72
73 my( @exec ) = @_ ;
74
75 if ( $pid = fork() ) {
76
77 push @children, $pid ;
78 return ;
79 }
80
81 exec @exec ;
82}