1 #!/usr/local/bin/perl -w
11 getopts( 'v', \%opts ) ;
13 my $cmds = Load do{ local $/ ; <> } ;
15 foreach my $boot ( @{$cmds} ) {
17 if ( my $skip = $boot->{'skip'} ) {
19 next if $skip eq 'yes' ;
21 my $wrap = $boot->{'wrap'} || '/bin/sh -c' ;
22 my $cd = $boot->{'cd'} || '.' ;
23 my $cmd = $boot->{'cmd'} ;
25 my $user = $boot->{'user'} || '';
27 my $env = $boot->{'env'} || {} ;
28 my $stem_env = $boot->{'stem_env'} || {} ;
30 local( %ENV ) = ( %ENV, %{$env} ) ;
32 my $cmd_env = join ' ', map( "$_='$stem_env->{$_}'", keys %$stem_env ) ;
34 $cmd =~ s/run_stem/run_stem $cmd_env/ ;
37 $system = "su - $user;" if $user && getpwuid($<) ne $user;
38 $system .= qq|$wrap "cd $cd ; $cmd" &| ;
40 print "$system\n" if $opts{'v'} ;
44 my $delay = $boot->{'delay'} || 3 ;
46 print "waiting $delay seconds\n" if $opts{'v'};