[1453] in Coldmud discussion meeting
user import script
daemon@ATHENA.MIT.EDU (Wed Aug 11 03:02:46 1999
)
Date: Tue, 10 Aug 1999 23:45:38 -0700 (PDT)
From: Brad Roberts <braddr@puremagic.com>
To: coldstuff@cold.org
Reply-To: coldstuff@cold.org
These three files can help make importing users into a new db quick and
easy. The script below, with its template and list of users, creates 2
files, a textdump fragment to be appended to the end of a coldcore
textdump and a script to be run with @mojo on to insert the users into the
$user_db registry. It doesn't have anything in the way of error checking,
but it worked for me.
NOTE: Genesis (and coldcc) must be built WITH crypted passwords enabled
unless your user.list file has cold style SHA-1 passwords.
Later,
Brad
========================================
conversion script
========================================
#!/usr/bin/perl
open FILE, "user.template";
$template = "";
while (defined ($line = <FILE>))
{
$template .= $line;
}
close FILE;
open FILE, "user.list";
open DB, ">user.db";
open SCRIPT, ">user.script";
while (defined ($line = <FILE>))
{
chomp $line;
($user, $password) = split(/ /, $line);
$userobject = $user;
$userobject =~ tr/A-Z/a-z/;
$userobject =~ s/\'//g;
$userobject =~ s/\`//g;
$loweruser = $user;
$loweruser =~ tr/A-Z/a-z/;
$temp = $template;
$temp =~ s/USEROBJECT/$userobject/g;
$temp =~ s/USERNAME/$user/g;
$temp =~ s/PASSWORD/$password/g;
print DB "${temp}";
print SCRIPT ";\$user_db.insert(\"${loweruser}\", \$user_${userobject})\n";
}
close FILE;
close DB;
close SCRIPT;
========================================
user.template
========================================
new object $user_USEROBJECT: $player;
var $root manager = $user_USEROBJECT;
var $root managed = [$user_USEROBJECT];
var $user task_connections = #[];
var $root created_on = 934343568;
var $dmi_data descriptions = #[];
var $has_commands shortcuts = #[];
var $has_commands remote = #[];
var $has_commands local = #[];
var $channel_ui channel_dict = #[];
var $channel_ui active_channels = #[];
var $user connected_seconds = 6;
var $command_aliases command_aliases = [];
var $has_name name = ['prop, "USERNAME", "USERNAME"];
var $mail_list mail = [];
var $mail_list senders = 1;
var $mail_list readers = [$user_USEROBJECT];
var $mail_list notify = [$user_USEROBJECT];
var $mail_ui current = #[['list, $user_USEROBJECT]];
var $mail_ui subscribed = #[[$user_USEROBJECT, [934343568, 0]], [$mail_list_news, [0, 0]]];
var $described prose = [];
var $location contents = [];
var $located location = $body_cave;
var $located obvious = 1;
var $thing gender = $gender_neuter;
var $user password = "PASSWORD";
var $user connected_at = -934343574;
var $user last_command_at = 934343574;
var $user connections = [];
var $user parsers = [$command_parser, $channel_parser];
var $user action = "";
var $root quota = 76800;
var $user formatter = $plain_format;
var $root inited = 1;
var $user_info info = #[];
var $body last_command = "@quit";
var $command_cache modules = [];
var $user activity = "";
=======================================
user.list
=======================================
username crypted_password
etc etc
=======================================