// persistent virtual object compiler
#include <mudlib.h>
inherit DAEMON;
#define DEBUG 1
#ifdef DEBUG
#define BUG(x) log_file("o_server", x)
#else
#define BUG(x)
#endif
object compile_object(string s) {
string filename, uid, *tmp;
object ob;
write("trying to compile " + s + "\n");
if (file_size(s + SAVE_EXTENSION)==-1)
return 0;
filename = read_file(s + SAVE_EXTENSION, 1, 1);
if (!sscanf(filename, "#%s.c", filename)) {
write("sscanf failed.\n");
return 0;
}
write("got: " + filename + "\n");
ob = new("/" + filename);
write("cloned it...\n");
tmp = explode(s, "/");
uid = tmp[sizeof(tmp)-1];
write("got uid: " + uid + "\n");
seteuid(uid);
export_uid(ob);
seteuid(getuid());
return ob;
}