X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcreate_sysop.pl;h=99f3e0600d7b045177fb1d934df281c9f6881fb7;hb=refs%2Fheads%2Fstaging;hp=95fc063600d588abccc944741b82b2731291734f;hpb=8ac487c0c3297023df07493b11fe166d4c857081;p=spider.git diff --git a/perl/create_sysop.pl b/perl/create_sysop.pl index 95fc0636..99f3e060 100755 --- a/perl/create_sysop.pl +++ b/perl/create_sysop.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # # create a NEW user database and the sysop record # @@ -6,7 +6,7 @@ # # Copyright (c) 1998 Dirk Koopman G1TLH # -# $Id$ +# # # make sure that modules are searched in the order local then perl @@ -15,33 +15,36 @@ BEGIN { $root = "/spider"; $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'}; + unshift @INC, "$root/perl"; # this IS the right way round! unshift @INC, "$root/local"; } use DXVars; +use SysVar; use DXUser; +use DXUtil; sub delete_it { - system("rm -f $userfn*"); + DXUser::del_file(); } sub create_it { - my $ref = DXUser->get($mycall); + my $ref = DXUser::get(uc $mycall); $ref->del() if $ref; - my $self = DXUser->new($mycall); - $self->{alias} = $myalias; + my $self = DXUser->new(uc $mycall); + $self->{alias} = uc $myalias; $self->{name} = $myname; $self->{qth} = $myqth; - $self->{qra} = $mylocator; + $self->{qra} = uc $mylocator; $self->{lat} = $mylatitude; $self->{long} = $mylongitude; $self->{email} = $myemail; $self->{bbsaddr} = $mybbsaddr; - $self->{homenode} = $mycall; - $self->{sort} = 'A'; # C - Console user, S - Spider cluster, A - AK1A, U - User, B - BBS + $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; @@ -51,50 +54,64 @@ sub create_it $self->close(); # now do one for the alias - $ref = DXUser->get($myalias); + $ref = DXUser::get(uc $myalias); $ref->del() if $ref; - $self = DXUser->new($myalias); + $self = DXUser->new(uc $myalias); $self->{name} = $myname; $self->{qth} = $myqth; - $self->{qra} = $mylocator; + $self->{qra} = uc $mylocator; $self->{lat} = $mylatitude; $self->{long} = $mylongitude; $self->{email} = $myemail; $self->{bbsaddr} = $mybbsaddr; - $self->{homenode} = $mycall; + $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'; + $self->{group} = [qw(local #9000)]; # write it away $self->close(); } -if (-e "$userfn") { +die "\$myalias \& \$mycall are the same ($mycall)!, they must be different (hint: make \$mycall = '${mycall}-2';).\n" if $mycall eq $myalias; + +$lockfn = "$main::local_data/cluster.lck"; # lock file name (now in local data) +if (-e $lockfn) { + open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!"; + my $pid = ; + chomp $pid; + die "Sorry, Lockfile ($lockfn) and process $pid exist, a cluster is running\n" if kill 0, $pid; + close CLLOCK; +} + +$DXUser::v3 = 1; + +if (-e "$userfn.v2" || -e "$userfn.v3") { print "Do you wish to destroy your user database (THINK!!!) [y/N]: "; $ans = ; if ($ans =~ /^[Yy]/) { delete_it(); - DXUser->init($userfn, 1); + DXUser::init(1); create_it(); } else { print "Do you wish to reset your cluster and sysop information? [y/N]: "; $ans = ; if ($ans =~ /^[Yy]/) { - DXUser->init($userfn, 1); + DXUser::init(1); create_it(); } } } else { - DXUser->init($userfn, 1); + DXUser::init(1); create_it(); } -DXUser->finish(); +DXUser::finish(); exit(0);