diff options
Diffstat (limited to 'FS/bin/freeside-setup')
-rwxr-xr-x | FS/bin/freeside-setup | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/FS/bin/freeside-setup b/FS/bin/freeside-setup deleted file mode 100755 index 155c74aa0..000000000 --- a/FS/bin/freeside-setup +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/perl -w - -#to delay loading dbdef until we're ready -BEGIN { $FS::Schema::setup_hack = 1; } - -#to allow initial insert -use FS::part_pkg; -$FS::part_pkg::setup_hack = 1; -$FS::part_pkg::setup_hack = 1; - -use strict; -use vars qw($opt_u $opt_d $opt_v $opt_q); -use Getopt::Std; -use FS::UID qw(adminsuidsetup datasrc checkeuid getsecrets); -use FS::CurrentUser; -use FS::Schema qw( dbdef_dist reload_dbdef ); -use FS::Record qw( qsearch ); -#use FS::raddb; -use FS::Setup qw(create_initial_data); -use FS::Conf; - -die "Not running uid freeside!" unless checkeuid(); - -#my %attrib2db = -# map { lc($FS::raddb::attrib{$_}) => $_ } keys %FS::raddb::attrib; - -getopts("u:vqd:"); -$opt_v = 1 unless $opt_q; #verbose by default now - -my $config_dir = shift || '%%%DIST_CONF%%%' ; -$config_dir =~ /^([\w.:=\/]+)$/ - or die "unacceptable configuration directory name"; -$config_dir = $1; - -getsecrets($opt_u); - -#needs to match FS::Record -my($dbdef_file) = "%%%FREESIDE_CONF%%%/dbdef.". datasrc; - -### - -my $username_len = 32; - -#print "\n\n", <<END, ":"; -#Freeside tracks the RADIUS User-Name, check attribute Password and -#reply attribute Framed-IP-Address for each user. You can specify additional -#check and reply attributes (or you can add them later with the -#fs-radius-add-check and fs-radius-add-reply programs). -# -#First enter any additional RADIUS check attributes you need to track for each -#user, separated by whitespace. -#END -#my @check_attributes = map { $attrib2db{lc($_)} or die "unknown attribute $_"; } -# split(" ",&getvalue); -# -#print "\n\n", <<END, ":"; -#Now enter any additional reply attributes you need to track for each user, -#separated by whitespace. -#END -#my @attributes = map { $attrib2db{lc($_)} or die "unknown attribute $_"; } -# split(" ",&getvalue); -# -#print "\n\n", <<END, ":"; -#Do you wish to enable the tracking of a second, separate shipping/service -#address? -#END -#my $ship = &_yesno; -# -#sub getvalue { -# my($x)=scalar(<STDIN>); -# chop $x; -# $x; -#} -# -#sub _yesno { -# print " [y/N]:"; -# my $x = scalar(<STDIN>); -# $x =~ /^y/i; -#} - -#my @check_attributes = (); #add later -#my @attributes = (); #add later -#my $ship = $opt_s; - -### -# create a dbdef object from the old data structure -### - -warn "Loading schema objects\n" if $opt_v; - -my $dbdef = dbdef_dist(datasrc); - -#important -$dbdef->save($dbdef_file); -&FS::Schema::reload_dbdef($dbdef_file); - -### -# create 'em -### - -warn "Connecting to database\n" if $opt_v; - -$FS::CurrentUser::upgrade_hack = 1; -$FS::UID::callback_hack = 1; -my $dbh = adminsuidsetup $opt_u; #$user; -$FS::UID::callback_hack = 0; - -#create tables -$|=1; - -warn "Creating tables and indices\n" if $opt_v; - -foreach my $statement ( $dbdef->sql($dbh) ) { - $dbh->do( $statement ) - or die "CREATE error: ". $dbh->errstr. "\ndoing statement: $statement"; -} - -#now go back and reverse engineer the db -#so we pick up the correct column DEFAULTs for #oidless inserts -dbdef_create($dbh, $dbdef_file); -delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload -reload_dbdef($dbdef_file); - -warn "Tables and indices created - commiting transaction\n" if $opt_v; -$dbh->commit or die $dbh->errstr; -$dbh->disconnect or die $dbh->errstr; -warn "Database schema committed successfully\n" if $opt_v; - -warn "Initializing configuration\n" if $opt_v; -$FS::UID::callback_hack = 1; -$dbh = adminsuidsetup $opt_u; -$FS::UID::callback_hack = 0; -if (!scalar(qsearch('conf', {}))) { - my $error = FS::Conf::init_config($config_dir); - if ($error) { - $dbh->rollback or die $dbh->errstr; - die $error; - } -} - -warn "Configuration initialized - commiting transaction\n" if $opt_v; -$dbh->commit or die $dbh->errstr; -$dbh->disconnect or die $dbh->errstr; -warn "Configuration committed successfully\n" if $opt_v; - -$dbh = adminsuidsetup $opt_u; -create_initial_data('domain' => $opt_d); - -warn "Database initialized - commiting transaction\n" if $opt_v; -$dbh->commit or die $dbh->errstr; -$dbh->disconnect or die $dbh->errstr; -warn "Database initialization committed successfully\n" if $opt_v; - -sub dbdef_create { # reverse engineer the schema from the DB and save to file - my( $dbh, $file ) = @_; - my $dbdef = new_native DBIx::DBSchema $dbh; - $dbdef->save($file); -} - -sub usage { - die "Usage:\n freeside-setup -d domain.name [ -q ] [ config/dir ]\n" - # [ -u user ] for devel/multi-db installs -} - -1; - - |