# $Id$
#
+# make sure that modules are searched in the order local then perl
+BEGIN {
+ # root of directory tree for this system
+ $root = "/spider";
+ $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
+
+ unshift @INC, "$root/local";
+}
+
use DXVars;
use DXUser;
+sub delete_it
+{
+ DXUser->del_file($userfn);
+}
+
sub create_it
{
- system("rm -f $userfn*");
- DXUser->init($userfn);
- my $self = DXUser->new($mycall);
- $self->{alias} = $myalias;
- $self->{name} = $myname;
- $self->{qth} = $myqth;
- $self->{qra} = $mylocator;
- $self->{lat} = $mylatitude;
- $self->{long} = $mylongtitude;
- $self->{email} = $myemail;
- $self->{bbsaddr} = $mybbsaddr;
- $self->{sort} = 'U'; # C - Console user, S - Spider cluster, A - AK1A, U - User, B - BBS
- $self->{priv} = 9; # 0 - 9 - with 9 being the highest
- $self->{lastin} = 0;
-
- # write it away
- $self->close();
-
- # now do one for the alias
- $self = DXUser->new($myalias);
- $self->{name} = $myname;
- $self->{qth} = $myqth;
- $self->{qra} = $mylocator;
- $self->{lat} = $mylatitude;
- $self->{long} = $mylongtitude;
- $self->{email} = $myemail;
- $self->{bbsaddr} = $mybbsaddr;
- $self->{sort} = 'U'; # C - Console user, S - Spider cluster, A - AK1A, U - User, B - BBS
- $self->{priv} = 9; # 0 - 9 - with 9 being the highest
- $self->{lastin} = 0;
-
- # write it away
- $self->close();
-
- DXUser->finish();
- print "New user database created as $userfn\n";
+ my $ref = DXUser->get(uc $mycall);
+ $ref->del() if $ref;
+
+ my $self = DXUser->new(uc $mycall);
+ $self->{alias} = uc $myalias;
+ $self->{name} = $myname;
+ $self->{qth} = $myqth;
+ $self->{qra} = uc $mylocator;
+ $self->{lat} = $mylatitude;
+ $self->{long} = $mylongitude;
+ $self->{email} = $myemail;
+ $self->{bbsaddr} = $mybbsaddr;
+ $self->{homenode} = uc $mycall;
+ $self->{sort} = 'S'; # C - Console user, S - Spider cluster, A - AK1A, U - User, B - BBS
+ $self->{priv} = 9; # 0 - 9 - with 9 being the highest
+ $self->{lastin} = 0;
+ $self->{dxok} = 1;
+ $self->{annok} = 1;
+
+ # write it away
+ $self->close();
+
+ # now do one for the alias
+ $ref = DXUser->get(uc $myalias);
+ $ref->del() if $ref;
+
+ $self = DXUser->new(uc $myalias);
+ $self->{name} = $myname;
+ $self->{qth} = $myqth;
+ $self->{qra} = uc $mylocator;
+ $self->{lat} = $mylatitude;
+ $self->{long} = $mylongitude;
+ $self->{email} = $myemail;
+ $self->{bbsaddr} = $mybbsaddr;
+ $self->{homenode} = uc $mycall;
+ $self->{sort} = 'U'; # C - Console user, S - Spider cluster, A - AK1A, U - User, B - BBS
+ $self->{priv} = 9; # 0 - 9 - with 9 being the highest
+ $self->{lastin} = 0;
+ $self->{dxok} = 1;
+ $self->{annok} = 1;
+ $self->{lang} = 'en';
+
+ # write it away
+ $self->close();
+
+}
+
+$lockfn = "$root/perl/cluster.lck"; # lock file name
+if (-e $lockfn) {
+ open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!";
+ my $pid = <CLLOCK>;
+ chomp $pid;
+ die "Sorry, Lockfile ($lockfn) and process $pid exist, a cluster is running\n" if kill 0, $pid;
+ close CLLOCK;
}
if (-e "$userfn") {
- print "This program will destroy your user database!!!!\n\nDo you wish to continue [y/N]: ";
- $ans = <STDIN>;
- create_it() if ($ans =~ /^[Yy]/);
+ print "Do you wish to destroy your user database (THINK!!!) [y/N]: ";
+ $ans = <STDIN>;
+ if ($ans =~ /^[Yy]/) {
+ delete_it();
+ DXUser->init($userfn, 1);
+ create_it();
+ } else {
+ print "Do you wish to reset your cluster and sysop information? [y/N]: ";
+ $ans = <STDIN>;
+ if ($ans =~ /^[Yy]/) {
+ DXUser->init($userfn, 1);
+ create_it();
+ }
+ }
+
} else {
- create_it();
+ DXUser->init($userfn, 1);
+ create_it();
}
+DXUser->finish();
exit(0);