#!/usr/bin/perl -w
use strict;
use lib 'Cluster/Init/lib';
use Cluster::Init;
use Getopt::Std;

my %opt;
getopts("dhkvc:s:", \%opt) || usage();

usage() if $opt{h};

my %parms = (
    'inittab' => $opt{c} || '/etc/clinittab',
    'socket'  => $opt{s} || '/var/run/clinit/init.s'
	    );

if ($opt{d})
{
  my $init = Cluster::Init->daemon(%parms);
  exit;
}

my $init = Cluster::Init->client(%parms);

if ($opt{k})
{
  $init->shutdown(); 
  print $init->status if $opt{v};
  exit;
}

unless ($#ARGV >= 0)
{
  $init->tell("::ALL::","::REREAD::");
  print $init->status if $opt{v};
  exit;
}

# spawn all apps for requested resource group and runlevel 
my $runlevel=pop;
my $resource_group=pop || `hostname`;
chomp($resource_group);
print $init->tell($resource_group,$runlevel)."\n";
print $init->status if $opt{v};

sub usage
{
  die "
  usage: $0 [-h] [[resource_group] runlevel]

    -h	help
    -d	start daemon
    -k	kill daemon and all child processes
    -c  config file (default /etc/clinittab)
    -s  socket path (default /var/run/clinit/init.s)

  If resource_group is not given, it defaults to hostname.

  If neither resource_group nor runlevel are given, reread /etc/clinittab.
  
  \n";
}

